Python如何获取request response body

news2024/11/17 15:54:25

在Python中,我们可以使用多个库来发送HTTP请求并获取响应体(response body)。其中,最常用的库之一是 requests。这个库提供了简单易用的接口来发送HTTP请求,并可以方便地获取响应体的内容。

下面是一个详细的示例,展示如何使用 requests 库来发送HTTP GET请求,并获取响应体。该示例代码可以直接运行,并具有一定的参考价值和实际意义。

一、获取request response body

1.安装requests库

首先,确保我们已经安装了 requests 库。如果还没有安装,可以使用以下命令来安装:

bash复制代码

pip install requests

2.示例代码

以下是一个完整的Python脚本,展示如何发送HTTP GET请求并获取响应体:

import requests
 
def fetch_url(url):
    try:
        # 发送HTTP GET请求
        response = requests.get(url)
 
        # 检查请求是否成功(状态码为200)
        if response.status_code == 200:
            # 获取响应体内容(文本格式)
            response_body = response.text
            print("请求成功,响应体内容如下:")
            print(response_body)
        else:
            # 如果请求失败,输出状态码和错误信息
            print(f"请求失败,状态码:{response.status_code}")
            print(f"错误信息:{response.reason}")
 
    except requests.exceptions.RequestException as e:
        # 捕获所有请求异常并输出错误信息
        print(f"请求发生异常:{e}")
 
if __name__ == "__main__":
    # 替换为我们要请求的URL
    url = "https://jsonplaceholder.typicode.com/posts/1"
    fetch_url(url)

3.代码解释

(1)导入requests库

python复制代码

import requests

(2)定义函数 fetch_url

  • 该函数接受一个URL作为参数。
  • 使用 requests.get(url) 发送HTTP GET请求。
  • 检查响应的状态码是否为200(表示请求成功)。
  • 如果请求成功,获取响应体内容并打印。
  • 如果请求失败,输出状态码和错误信息。
  • 捕获并处理所有请求异常。

(3)主程序

  • 设置一个示例URL(这里使用的是JSONPlaceholder的示例API)。
  • 调用 fetch_url 函数发送请求。

4.运行代码

将上述代码保存到一个Python文件中(例如 fetch_url.py),然后在命令行中运行:

bash复制代码

python fetch_url.py

我们应该会看到类似如下的输出(具体内容取决于请求的URL):

请求成功,响应体内容如下:
{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quasi\net nostrum exercitationem laborum\n",
    "postedDate": "2023-10-04T09:46:24.282Z"
}

5.注意事项

(1)URL:在实际应用中,将示例URL替换为我们需要请求的URL。

(2)错误处理:示例代码中包含基本的错误处理,但在生产环境中,我们可能需要更详细的错误处理和日志记录。

(3)安全性:对于涉及敏感信息(如API密钥)的请求,请确保使用HTTPS协议,并妥善保管敏感信息。

这个示例展示了如何使用 requests 库来发送HTTP请求并获取响应体,对于处理HTTP请求和响应具有实际的参考价值。

二、如何在Python中创建网站

在Python中创建网站通常涉及使用Web框架,这些框架提供了一套工具和库,用于构建Web应用程序和网站。一个流行的Python Web框架是Flask,它轻量级且易于上手,但Django也是一个功能强大且广泛使用的选择。下面我将简要介绍如何使用Flask创建一个简单的网站。

1.安装Flask

首先,我们需要安装Flask。我们可以使用pip(Python的包管理器)来安装它:

bash复制代码

pip install Flask

2.创建一个简单的Flask应用

(1)创建一个新的Python文件,比如app.py

(2)在app.py文件中,编写以下代码来创建一个简单的Flask应用:

from flask import Flask, render_template
 
app = Flask(__name__)
 
# 路由和视图函数
@app.route('/')
def home():
    return render_template('index.html')
 
if __name__ == '__main__':
    app.run(debug=True)

(3)创建一个名为templates的文件夹,并在其中创建一个名为index.html的文件。这个文件夹和文件将用于存储我们的HTML模板。

(4)在index.html文件中,编写一些简单的HTML代码:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>My Flask Website</title>
  </head>
  <body>
    <h1>Welcome to My Flask Website!</h1>
  </body>
</html>

(4)现在,我们可以运行我们的Flask应用了。在命令行中,导航到包含app.py文件的目录,并运行:

bash复制代码

python app.py

(5)打开我们的Web浏览器,并访问http://127.0.0.1:5000/。我们应该会看到我们创建的简单网站的首页,上面显示着“Welcome to My Flask Website!”。

3.解释代码

  • from flask import Flask, render_template:从Flask库中导入Flask类和render_template函数。
  • app = Flask(__name__):创建一个Flask应用实例。
  • @app.route('/'):定义一个路由,当用户访问根URL(/)时,将调用下面的视图函数。
  • def home()::定义一个视图函数,用于处理根URL的请求。
  • return render_template('index.html'):渲染index.html模板,并将其作为HTTP响应返回给客户端。
  • if __name__ == '__main__'::检查是否直接运行该脚本(而不是作为模块导入)。
  • app.run(debug=True):运行Flask应用,并启用调试模式(在生产环境中应禁用)。

4.部署网站

要在互联网上部署我们的Flask网站,我们需要将其部署到一个Web服务器上,比如Gunicorn或uWSGI,并使用像Nginx这样的反向代理来处理静态文件和转发请求。此外,我们可能还需要配置一个数据库(如SQLite、PostgreSQL或MySQL)来存储网站的数据。

对于生产环境的部署,建议使用像Docker这样的容器化技术来封装我们的应用及其依赖项,以确保在不同环境中的一致性和可移植性。我们还可以使用像Heroku、AWS Elastic Beanstalk或Google Cloud Run这样的平台来简化部署过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EXCEL 或 WPS 列下划线转驼峰

使用场景&#xff1a; 需要将下划线转驼峰&#xff0c;直接在excel或wps中第一行使用公式&#xff0c;然后快速刷整个列格式即可。全列工下划线转为格式&#xff0c;使用效果如下&#xff1a; 操作步骤&#xff1a; 第一步&#xff1a;在需要显示驼峰的一列&#xff0c;复制以…

【SpringBoot】公共字段自动填充

问题引入 JavaEE开发的时候&#xff0c;新增字段&#xff0c;修改字段大都会涉及到创建时间(createTime)&#xff0c;更改时间(updateTime)&#xff0c;创建人(craeteUser)&#xff0c;更改人(updateUser)&#xff0c;如果每次都要自己去setter()&#xff0c;会比较麻烦&#…

华为云租户网络-用的是隧道技术

1.验证租户网络是vxlan 2.验证用OVS 2.1控制节点VXLAN 本端ip&#xff08;local ip&#xff09;192.168.31.8 2.2计算节点VXLAN 本端ip&#xff08;local ip&#xff09;192.168.31.11 计算节点用的是bond0做隧道网络 2.3查看bond文件是否主备模式

网络编程-002-UDP通信

1.UDP通信的简单介绍 1.1不需要通信握手,无需维持连接,网络带宽需求较小,而实时性要求高 1.2 包大小有限制,不发大于路径MTU的数据包 1.3容易丢包 1.4 可以实现一对多,多对多 2.客户端与服务端=发送端与接收端 代码框架 收数据方一般都是客户端/接收端 3.头文件 #i…

从PE结构到LoadLibrary

从PE结构到LoadLibrary PE是Windows平台主流可执行文件格式,.exe , .dll, .sys, .com文件都是PE格式 32位的PE文件称为PE32&#xff0c;64位的称为PE32&#xff0c;PE文件格式在winnt.h头中有着详细的定义&#xff0c;PE文件头包含了一个程序在运行时需要的所有信息&#xff…

AntFlow:一款高效灵活的开源工作流引擎

AntFlow 是一款功能强大、设计优雅的开源工作流引擎&#xff0c;其灵感来源于钉钉的工作流设计理念&#xff0c;旨在为企业和开发者提供灵活、高效的工作流解决方案。AntFlow 支持复杂的业务流程管理&#xff0c;具有高度可定制性&#xff0c;且拥有现代化的前端设计&#xff0…

智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁

近日&#xff0c;贵州省贵阳市中级人民法院对余华英拐卖儿童案做出了一审宣判&#xff0c;判处其死刑&#xff0c;剥夺政治权利终身&#xff0c;并处没收个人全部财产。这一判决不仅彰显了法律的威严&#xff0c;也再次唤起了社会对拐卖儿童犯罪的深切关注。 余华英自1993年至2…

python机器人Agent编程——多Agent框架的底层逻辑(上)

目录 一、前言二、两个核心概念2.1 Routines&#xff08;1&#xff09;清晰的Prompt&#xff08;2&#xff09;工具调用json schema自动生成&#xff08;3&#xff09;解析模型的toolcall指令&#xff08;4&#xff09;单Agent的循环决策与输出 PS.扩展阅读ps1.六自由度机器人相…

【大语言模型】ACL2024论文-14 任务:不可能的语言模型

【大语言模型】ACL2024论文-14 任务&#xff1a;不可能的语言模型 目录 文章目录 【大语言模型】ACL2024论文-14 任务&#xff1a;不可能的语言模型目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果重要数据与结论推荐阅读指数和推荐理由 后记 任务&#xff1a;不可能…

redis linux 安装

下载解压 https://download.redis.io/releases/ tar -zvxf ----redis-7.4.1编译 进入目录下 # redis 依赖c yum install gcc-cmake可能会有问题&#xff0c;所以记得换源# 安装到 /usr/local/redis make PREFIX/usr/local/redis installcd src ./redis-serverredis.confi…

计算机毕业设计Hadoop+大模型空气质量预测 空气质量可视化 空气质量分析 空气质量爬虫 Spark 机器学习 深度学习 Django 大模型

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测

背景 如果你要为应用程序构建规范或用户故事&#xff0c;那么务必先把应用程序每个组件的监控指标考虑进来&#xff0c;千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章&#xff0c;当…

HTML+CSS+JavaScript

一、HTML 1、什么是HTML HTML&#xff08;Hyper Text Markup Language&#xff09;也叫超文本标记语言&#xff0c;什么意思呢&#xff1f; 超文本&#xff1a;普通文本语言没有什么特殊功能&#xff0c;而超文本&#xff0c;是表示一种比文本语言功能更强大的语言&#xff0c…

Dropout 和 BatchNorm 在训练和验证中的差异

文章目录 1. Dropout1.1 作用1.2 训练和验证的差异1.3 示例 2. Batch Normalization (BatchNorm)2.1 作用2.2 训练和验证时的差异2.3 示例 3. 总结4. 实际使用建议 在神经网络中&#xff0c;Dropout 和 Batch Normalization (BatchNorm) 是常见的层&#xff0c;其行为在 训练阶…

SQL Server 查询设置 - LIKE/DISTINCT/HAVING/排序

目录 背景 一、LIKE - 模糊查询 1. 通配符 % 2. 占位符 _ 3. 指定集合 [] 3.1 表示否定 ^ 3.2 表示范围 - 4. 否定 NOT 二、DISTINCT - 去重查询 三、HAVING - 过滤查询 四、小的查询设置 1. ASC|DESC - 排序 2. TOP - 限制 3. 子查询 4. not in - 取补集&…

【算法速刷(10/100)】LeetCode —— 23. 合并 K 个升序链表

按照最朴素的方法&#xff0c;每轮都对所给列表进行一次遍历&#xff0c;O(n)的复杂度获得值最小的节点&#xff0c;并将其上的链表指针后移一位&#xff0c;一旦为空则剔除数组。数组为空时结束循环。 这样写时间复杂度较高&#xff0c;因为涉及到枚举最小值节点&#xff0c;数…

【C语言】四种方法交换两个数(免费复制)

方法一&#xff1a; 通过中间变量t直接交换。 #include<stdio.h> //方法一 int main() {int a,b,t;printf("请输入a和b的值&#xff1a;\n");scanf("%d %d",&a,&b);printf("交换前&#xff1a;a%d,b%d\n",a,b);ta;ab;bt;printf…

WebSocket简易聊天室实现(有详细解释)

完整代码 Arata08/online-chat-demo 服务端: 1.编写配置类&#xff0c;扫描有 ServerEndpoint 注解的 Bean import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.s…

数据分析——Python绘制实时的动态折线图

最近在做视觉应用开发&#xff0c;有个需求需要实时获取当前识别到的位姿点位是否有突变&#xff0c;从而确认是否是视觉算法的问题&#xff0c;发现Python的Matplotlib进行绘制比较方便。 目录 1.数据绘制2.绘制实时的动态折线图3.保存实时数据到CSV文件中 import matplotlib.…

i春秋-Hash

练习平台地址 竞赛中心 题目描述 题目内容 啥也没有就一个标签跳转 点击后的确发生了跳转 观察到url中有key和hash两个值&#xff0c;猜测hash是key的hash 查看源代码发现确实是 $hashmd5($sign.$key);the length of $sign is 8 解密得到$sign应该为kkkkkk01 构造122的hash i…