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()方法,避免響應內容過大占用大量內存。
參考資料