requests模块Request类
1、介绍
requests.request函数执行返回requests.Response类的对象。当然,其他请求函数执行返回也是如此。
然后res.request可以调用获取该响应对象的请求对象,即requests.Request类的对象。如果没有重定向,此时的Request即基本是设置request请求函数的参数设置的。
2、类和初始化
class Request(RequestHooksMixin):
def __init__(
self,
method=None,
url=None,
headers=None,
files=None,
data=None,
params=None,
auth=None,
cookies=None,
hooks=None,
json=None,
):
- Request类支持开发者进行自定义初始化,但是并不能发起请求
3、属性和方法
(1)url和method
这两个属性类型为字符串,并且一个正常的request方法调用其值不为空
(2)headers
1)从值的形式上来说,是字典形式,键和值都是字符串。但实际的数据类型为<class ‘requests.structures.CaseInsensitiveDict’>
2)其值往往也不为空,模块代码会默认设置和携带一些头部
3)以下四种均输出,证明大小写不敏感
if 'user-agent' in res.request.headers:
print(1)
if 'user-agent' in res.request.headers.keys():
print(12)
if 'User-Agent' in res.request.headers:
print(13)
if 'User-Agent' in res.request.headers.keys():
print(134)
4)对headers直接在pyqt等要求参数为字符串str的场景中必须使用str函数进行强转
(3)body
如果没有设置data或者json,其值为None,类型为NoneType
在pyqt等要求参数为字符串str的场景中必须使用str函数进行强转
如果设置了data或者json,其值为str类型
(4)hooks
属性类型为字典,字典只有一个元素,其键为response,值为一个列表,列表的元素为定义的钩子函数
在pyqt等要求参数为字符串str的场景中必须使用str函数进行强转
{'response': [<function print_url at 0x0000026BC320F0D0>, <function change_url at 0x0000026BC35D0700>]}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战