requests支持HTTP的POST, GET, PUT,DELETE,HEAD 以及 OPTIONS等请求方式
所有的请求方式都相同,下面以requers.get的方式为例讲解
1. GET方式
requests.get(url,
params=None,
data=None,
headers=None,
cookies=None,
files=None,
auth=None,
timeout=None,
allow_redirects: bool = True,
proxies=None,
hooks=None,
stream=None,
verify=None,
cert=None,
json=None)
url请求的链接params在GET请求方法中,我们一般将参数以查询字符串的形式传递给 URL 链接(一般用在get请求方式中)
url = "http://httpbin.org/get?key1=vlaue1&key2=value2"
r = requests.get(url)
# 也可直接使用如下方式
url = "http://httpbin.org/get"
param = {"key1":value1, "key2":value2}
r = requests.get(url, params=param)
datajsonPOST和PUT等方法中,如果我们需要传输大量的数据(比如图片上传、文件上传、修改文档等)给网站服务器,就需要将其单独携带在HTTP请求中。requests提供了2种参数来支持我们在HTTP请求中传输消息主体:
(1)data:接受一个字典、列表、元组、字节和类文件对象;
(2)json:接受一个json参数,请求将会序列化这个数据,并添加一个请求头;headers请求头,一般是一个dicttimeout为防止服务器不能及时响应,大部分对外部服务器的请求都应该带着 timeout 参数,用来指定如果超多多久服务器没响应,则终止请求,请求超时会报错,应当使用try… exceptproxies使用代理
其他参数一般用的很少
requests.post()及其他方式参数与上面get相同,只是需要注意的是get方式传参数使用params, 而post使用data或json
2. 处理响应
requests提供了3种响应形式供我们选择和使用:
r.content:原始的响应主体字节;会乱码,使用r.content.decode("utf-8")解码r.text:经过编码后的响应主体字符串;.json():经过JSON处理的响应主体;
import requests
import json
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("https://www.bkqs.com.cn/")
print("content方式结果:", r.content)
print("text方式结果:", r.text)
print(r.json())
.content结果

.text结果

3. 其他方法
import requests
import json
r = requests.get("https://www.bkqs.com.cn/")
print("url", r.url)
print("状态码", r.status_code)
本文详细介绍了Python的requests库在HTTP请求中的应用,包括GET、POST等方法的使用,参数设置如data、json、headers、timeout等,并展示了如何处理响应内容,如.content、.text和.json()。此外,还提及了代理设置和处理超时的方法。
5337

被折叠的 条评论
为什么被折叠?



