Python之requests模块-response

response类故名思议,它包含了服务器对http请求的响应。每次调用requests去请求之后,均会返回一个response对象,通过调用该对象,可以查看具体的响应信息。 示例如下:
import requests
r = requests.get('https://api.github.com/events', verify=False)print(r.status_code)print(r.content)
此时会打印出响应的状态码和内容。
我们可以根据自身的需求,获取响应中的各种信息,具体内容见下表:
属性或属性方法
解释
r.status_code
响应的http状态码,比如404和200
r.headers
响应头,可单独取出某个字段的值,比如(r.headers)['content-type']
r.raw
原始响应,表示urllib3.response.HTTPResponse对象。使用raw时,要求在请求时设置“stream=True”
r.url
请求的最终地址
r.encoding
要解码的r.text的编码方式
r.history
请求的历史记录,可以用于查看重定向信息,以列表形式展示,排序方式是从最旧到最新的请求
r.reason
响应状态的描述,比如 "Not Found" or "OK"
r.cookies
服务器发回的cookies,RequestsCookieJar类型
r.elapsed
从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如r.elapsed.microseconds表示响应到达需要多少微秒
r.request
PreparedRequest对象,可以用于查看发送请求时的信息,比如r.request.headers查看请求头
r.ok
检查”status_code“的值,如果小于400,则返回True,如果不小于400,则返回False
r.is_redirect
判断是否重定向,返回True or False
r.is_permanent_redirect
判断是否永久重定向,返回True or False
r.next
返回重定向链中下一个请求的PreparedRequest对象
r.apparent_encoding
用chardet库判断出的编码方式
r.content
响应的内容,byte类型
r.text
响应的内容,unicode类型
r.links
响应的解析头链接
response类除了上述属性和属性方法外,还提供了一些其他方法。
较为常用的r.json()方法,用于将响应解析成json格式。
应对stream时的iter_content()和iter_line()方法,避免响应内容过大占用大量内存。
参考资料
https://github.com/psf/requests/blob/master/requests/models.py