前面我們使用了新增cookie的方式來進行介面的訪問,如果有幾十個介面都要依賴登入,難道我們都要加上嗎?
request的會話物件讓你能夠跨請求保持某些引數,它也會在同一請求session例項發出的所有請求之間保持cookie
importrequests
base_url = '
's = requests.session() #
設定cookie
r = s.get(base_url + '
/cookies/set/user/zou')
(r.text)
r = s.get(base_url + '
/cookies')
print(r.text)
結果:
}}
所以利用session我們可以做到模擬同乙個會話,而且不用擔心cookie的問題,通常用於模擬登入成功後再進行下一步的操作
requests 可以為 https 請求驗證 ssl 證書,就像 web 瀏覽器一樣。ssl 驗證預設是開啟的,如果證書驗證失敗,requests 會丟擲 sslerror,類似與下面這樣
requests.get('')requests.exceptions.sslerror: hostname
'requestb.in
' doesn'
t match either of
'*.herok
如果不想驗證ssl則可以使用verify引數關閉驗證ssl
importrequests
#關閉ssl驗證
r = requests.get('
', verify=false)
print(r.text)
你可以為 verify 傳入 ca_bundle 檔案的路徑,或者包含可信任 ca 證書檔案的資料夾路徑:
importrequests
requests.get(
'', verify='
/path/to/certfile
')
或者將其保持在會話中:
s =requests.session()s.verify = '
/path/to/certfile
'
如果 verify 設為資料夾路徑,資料夾必須通過 openssl 提供的 c_rehash 工具處理。
報錯處理
在python3中使用以下**報錯:
requests.get(url, verify=false)
報錯資訊如下
解決方法一
加上如下**
requests.packages.urllib3.disable_warnings()
解決方法二
加如下**
importurllib3
urllib3.disable_warnings(urllib3.exceptions.insecurerequestwarning)
SSL會話的簡化過程
1 客戶端傳送可供選擇的加密方式,並向伺服器請求證書 2 服務端傳送證書,選定加密方式並告知客戶端 3 客戶端取得證書並進行證書的驗證 如果信任發證的ca a.驗證證書 的合法性 用ca的公鑰解密數字簽名 b.驗證證書的內容合法性 完整性驗證 c.檢查證書的有效期限 d.檢查證書是否被吊銷 e.證書...
SSL的會話和連線
1.會話和連線 1 連線 提供合適服務型別的傳輸。特點 連線是對等的,暫時的和關聯的 指和會話 2 會話 是伺服器和客戶端的關聯。2.會話的引數 會話引數 會話標示符 有伺服器選擇的任意位元組,確定活動和可恢復的會話狀態 對等實體證書 x.509v4,可以為空 壓縮方法 使用的壓縮演算法。優於加密演...
requests 中的 SSL 證書驗證
現在很多 都要求使用 https 協議,但是有些 可能並沒有設定好 https 證書,或者 的 https 證書不被 ca 機構認可,這時候,這些 可能就會出現 ssl 證書錯誤的提示。我們可以在 中中通過一些設定來忽略證書的驗證。import requests from requests.pack...