文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python+Requests模块获取响应内容

2023-09-03 21:03

关注

Requests模块获取响应内容

响应包括响应行、响应头、响应正文内容,这些返回的响应信息都可以通过Requests模块获取。这些 获取到的响应内容也是接口测试执行得到的实际结果。

获取响应行

获取响应头

获取其它响应信息

代码示例:

# 导入requests模块import requestsr = requests.get("https://www.baidu.com")print(r.status_code) #响应状态码print(r.reason) #响应信息print(r.headers) #获取响应头 返回的是dict类型,可以继续使用get获取指定的值# 获取其它响应信息:print(r.url) # 获取请求地址print(r.cookies) #获取cookiesprint(r.encoding) #获取响应的编码格式

响应正文

依据不同响应正文内容的情况,Requests模块有四种不同的处理方式

一、普通文本数据

Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。请求发出后, Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。当你访问 response.text 之时,Requests 会使用其 推测的文本编码。response.text使用后乱码的几率很大,可以先用response.encoding 属性来改变编码,如下所示:

代码示例:

# 1,普通文本数据url = "http://www.hnxmxit.com/"response = requests.get(url=url)print(response.content.decode("utf-8"))

查看执行结果:

 二、二进制数据

对于非文本请求,response.content能以字节的方式访问请求响应体。且Requests模块会自动为你解码 gzip 和 deflate 传输编码的响应数据

# 2,二进制数据response =requests.get("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2073439784,2147418910&fm=26&gp=0.jpg")print(type(response.content))  # 输出二进制的图片数据类型with open("E:/baidu.gif","wb") as f:  # 将二进制数据写入到本地文件    f.write(response.content)

查看执行结果:

 三、json数据

Requests 中有一个内置的 JSON 解码器 response.json(),处理返回的 JSON 数据。使用后,会把返回的数据 作为一个python中的json数据对象看待。如果 JSON 解码失败, response.json() 就会抛出一个异常。

url = 'https://api.weixin.qq.com/cgi-bin/token'data = {'grant_type':'client_credential',        'appid':'wxf14419077f707856',        'secret':'92a113bd4b5ffdc72144740dc7123c99'}response = requests.get(url=url,params=data)# 响应是str类型 ,所以我们需要将响应转换成jsonjson_obj = response.json()token = json_obj['access_token']print(token)

四、原始响应内容(一般不使用)

如果需要获取来自服务器的原始套接字响应,可以使用response.raw,如果确定要获取的话,还需要在初始请 求中设置stream=True。

# 4,原始响应内容(一般不使用)url = "https://www.baidu.com"response = requests.get(url=url,stream=True)print(response.raw.read(10))

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!

来源地址:https://blog.csdn.net/Liuyanan990830/article/details/130116103

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯