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() 方法,避免响应内容过大占用大量内存。