requests 會話物件,ssl驗證

2022-06-09 04:09:09 字數 1771 閱讀 1360

前面我們使用了新增cookie的方式來進行介面的訪問,如果有幾十個介面都要依賴登入,難道我們都要加上嗎?

request的會話物件讓你能夠跨請求保持某些引數,它也會在同一請求session例項發出的所有請求之間保持cookie

import

requests

base_url = '

's = requests.session() #

設定cookie

r = s.get(base_url + '

/cookies/set/user/zou')

print

(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

import

requests

#關閉ssl驗證

r = requests.get('

', verify=false)

print(r.text)

你可以為 verify 傳入 ca_bundle 檔案的路徑,或者包含可信任 ca 證書檔案的資料夾路徑:

import

requests

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()

解決方法二

加如下**

import

urllib3

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...