Python+Requests模块获取响应内容

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) #获取cookies
print(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类型 ,所以我们需要将响应转换成json
json_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))

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

算法通关村第十四关-青铜挑战认识堆

大家好我是苏麟 , 今天带大家认识认识堆 . 堆 堆是将一组数据按照完全二叉树的存储顺序,将数据存储在一个一维数组中的结构。 堆有两种结构,一种称为大顶堆,一种称为小顶堆 : 大顶堆 大顶堆的任何一个父节点的值,都大于或等于…

前端下拉框select标签的插件——select2.js

本文采用的是select2 版本:Select2 4.0.6-rc.1。 可以兼容IE8及以上。亲测过。 官网:Getting Started | Select2 - The jQuery replacement for select boxes 一、认识select2.js 1、使用插件,首先要引入别人的插件了,你可以选择离线(无网络)或者在线引用的(如果有网…

ios 逆向分分析,某业帮逆向算法(一)

用到工具: 爱思助手CrackerXL(砸壳软件)越狱手机ida反汇编软件分析login 的sign 签名算法中自己写算法 已知我们32位,我们不妨猜测是md5 ,那我们试图使用CC_MD5 ,这个是ios 中的标准库, 我们使用frida-trace 注入hook一下,看看有没有 经过 是经过了这个函数,密码也是…

新建的springboot项目中application.xml没有绿色小叶子(不可用)

经常有朋友会遇到新建了一个springboot项目,发现为啥我创建的application.xml配置文件不是绿色的??? 下面教大家如何解决,这也是博主在做测试的时候遇到的: 将当前位置application.xml删掉,重新…

在Spring Boot中使用@Async实现一个异步调用

在使用异步注解之前,我们需要先了解,什么是异步调用? 异步调用对应的事同步调用,同步调用是值程序按照我们定义的顺序依次执行,每一行程序都必须等待上一行的程序执行完成之后才执行,而异步是指在顺序执行…

YOLOv8 第Y7周 水果识别

1.创建文件夹: YOLOv8开源地址 -- ultralytics-main文件下载链接:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite 其余文件由代码生成。 数据集下载地址:Frui…

使用NVM管理多个版本的node.js

1、nvm介绍: nvm全英文也叫node.js version management,是一个nodejs的版本管理工具。nvm是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js 2、下载nvm地址: https://d…

Mybatis如何执行批量操作

文章目录 Mybatis如何执行批量操作使用foreach标签 使用ExecutorType.BATCH如何获取生成的主键 Mybatis如何执行批量操作 使用foreach标签 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach标签的属性主要有item,index&…

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开?

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开? 1、在iPhone苹果手机上找到「Safari浏览器」,并点击打开; 2、打开Safari浏览器后,输入词令官方网站地址:ciling.cn ; 3、打开词令官网后,点击Safari…

Maven的配置亲测有效

文章目录 前言一、maven网址二、操作步骤三.配置环境变量四.配置本地仓库五.找到mirror 和配置JDK六.胜利七.提醒⏰;总结 前言 (我讲一下什么是maven,不想看跳到下一步就行了,也没必要看) Maven(Apache Maven&#x…

使用策略模式彻底消除if-else

文章目录 使用策略模式彻底消除if-else1. 场景描述2. if-else方式3. 策略模式 使用策略模式彻底消除if-else 如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现,这样会显得代码逻辑很臃肿&#xff0c…

【广州华锐视点】机械零件拆装VR仿真教学系统

随着科技的不断发展,虚拟现实(VR)技术已经逐渐走进我们的生活。在教育领域,VR技术的应用也日益广泛,为学生提供了更加生动、直观的学习体验。广州华锐视点开发的机械零件拆装VR仿真教学系统作为一种新兴的教学方式&…

Vision Pro即将量产之际,苹果还是放不下中国供应链

发布半年后,苹果口中的“革命性新产品”Vision Pro终于有了新消息。 图源:苹果 根据多家消费电子供应链公司核心人士消息,苹果计划于12月正式量产Vision Pro,首批备货40万台左右,2024年的销量目标为100万台&#xff0…

网络篇---第九篇

系列文章目录 文章目录 系列文章目录前言一、说说TCP/IP四层网络模型二、说说域名解析详细过程?三、 IP 地址分为几类,每类都代表什么,私网是哪些?四、说说TCP 如何保证可靠性的?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家…

W1R3S

信息收集 主机发现 利用nmap -sn参数进行主机发现,该参数是当发现存活主机的时候,不进行端口的探测,其中的n并不是network的含义,而是not port的意思! nmap -sn 192.168.217.0/24 -oA ./hosts 这种方式和arp-scan -…

JOSEF约瑟 DY-34 型电压继电器,15-30V 柜内安装,板前接线

DY-30系列电压继电器 DY-32电压继电器; DY-36电压继电器; DY-33电压继电器; DY-37电压继电器; DY-34电压继电器; DY-38电压继电器; DY-31电压继电器; DY-35电压继电器; DY-32/60C电压…

c语言-浅谈指针(4)

文章目录 1.回调函数概念举例 2.qsort函数qsort的使用 3.通过冒泡排序来模拟qsort函数排序int类型排序结构体类型 这是指针最后一篇了喔,完结撒花 ! 前三篇: 浅谈指针(1)http://t.csdnimg.cn/JTRjW 浅谈指针(2&#xf…

社区工作者在哪里啊?真救命了

社区工作者,每天各种写材料啊啊啊!! 有时候真的写麻掉了啊,家人们,太难了,谁懂啊!!!!! 这个好东西真的救我大命啊,只要输入关键词和…

linux基础五:linux 系统(进程状态2:)

linux 系统 一.进程状态:1.睡眠状态(sleep):2.磁盘休眠状态(disk sleep):3.停止状态(stoped --- T):4.死亡状态:5.控制状态(t) 二.僵尸进程和孤儿进程:1.僵尸状态:2.孤儿…

管理员配置Jupterhub

在Ubuntu上演示如何部署R语言环境,包括 posit的已经编译了一些R的安装 系统已经装了R,我额外编译的R如何让大家都能用到 如何配置RStudio jupyterhub的配置和使用 管理员如何配置jupyterhub 用户如何配置自己的jupyter环境 Ubuntu上的R部署 这一次…