Python requests

1.requests简介

Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。

2.requests使用

2.1 发送GET请求

python 复制代码
response = requests.get("http://www.baidu.com")

2.2 发送POST请求

python 复制代码
response = requests.post(url='https://ihrm-java.itheima.net/api/sys/login',
                         headers={'Content-Type': 'application/json'},  #指定请求头
                         json={"mobile": "13800000002", "password": "123456"},#当content-Type是json类型时使用json属性设置请求体
                         data={"key":"value"} #当content-Type是表单类型时使用data设置请求体
                         cookies={}, #设置cookie,一般用在两个有依赖的接口上,比如只有登录才能访问历史订单,我们在访问历史订单的请求中就需要携带登录请求返回的cookie
                         timeout=10   #超时时间
                         )

其他的delete,put也是类似的,只是方法不同,这里不再列出。

3.查看响应对象的属性

具体使用:

我们一般使用status_code配合unittest设置断言:self.assertEqual("200" , response.status_code)或者将响应体转换为json对象查看某个属性,当然也可以对他进行断言:response.json().get('属性名')

4.requests.Session()

当存在两个接口有依赖关系,需要使用到cookie时,我们可以实例化一个requests.Session()对象,通过这个对象调用GET或者POST方法,它会自动保存cookie,不需要我们显式指定cookie,比如现在有一个登录接口login,一个查看历史订单接口show_history。要想正确访问show_history,就必须携带login返回的cookie值,我们就可以使用下面的代码:

python 复制代码
session = request.Session()
sesison.get("xxxx/login")
response = session.get("xxxx/show_history")
#现在response就成功获取了查看历史订单的响应体对象

下面是是使用普通requests方法实现同样的效果:

python 复制代码
response = requests.get("xxxx/login")
cookie = response.cookies
response = requests.get(url='xxxx/show_history',cookies=cookie)

可以看出普通requests需要手动管理cookie,而session对象则可以自动。

相关推荐
2301_803875613 小时前
PHP 中处理会话数组时的类型错误解析与修复指南
jvm·数据库·python
m0_743623923 小时前
c++如何批量修改文件后缀名_std--filesystem--replace_extension【实战】
jvm·数据库·python
2401_873479404 小时前
如何利用IP查询定位识别电商刷单?4个关键指标+工具配置方案
开发语言·tcp/ip·php
我爱cope4 小时前
【从0开始学设计模式-10| 装饰模式】
java·开发语言·设计模式
2501_914245934 小时前
CSS如何处理CSS变量作用域冲突_利用特定类名重写变量值
jvm·数据库·python
菜鸟学Python4 小时前
Python生态在悄悄改变:FastAPI全面反超,Django和Flask还行吗?
开发语言·python·django·flask·fastapi
<-->4 小时前
Megatron(全称 Megatron-LM,由 NVIDIA 开发)和 DeepSpeed(由 Microsoft 开发)
人工智能·pytorch·python·深度学习·transformer
测试19985 小时前
2026最新软件测试面试八股文【附文档】
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
浪浪小洋5 小时前
c++ qt课设定制
开发语言·c++
charlie1145141915 小时前
嵌入式C++工程实践第16篇:第四次重构 —— LED模板,从通用GPIO到专用抽象
c语言·开发语言·c++·驱动开发·嵌入式硬件·重构