簡體   English   中英

使用curl轉換為具有多個SSL參數的python請求

[英]Convert with curl to python requests with multiple ssl params

我被要求編寫一個python腳本,該腳本將向安全的API發送發布請求,該API需要密鑰和2個證書(“ cert”和“ cacert”)。 我通常使用帶有curl的bash並像這樣手動輸入它:

curl -d "@data.json" -X POST https://example.com/api/v1/ --cert cert1.crt  --key key.key --cacert cert2.crt

我試圖將其轉換為python請求,並在“參數”下刪除所有ssl方法,如下所示,它不起作用:

data = open('data.json')
params = {'cert': 'cert1.crt',
          'key ': 'key.key',
          'cacert': 'cert2.crt'
          }

response = requests.post('https://example.com/api/v1/',
                             data=data, params=params)

根據要求,我必須使用“請求”而不是“ pycurl”。

有人可以幫忙嗎?

我找到了解決方案,顯然cacert是捆綁證書,必須在發送請求之前對其進行驗證,然后再使用證書本身和密鑰。

所以看起來像這樣:

with open('data.json', 'r') as f:
    data = json.loads(f.read())

response = requests.post("https://example.com", json=data,
                         verify="cert2.crt", cert=("cert1.crt", "key.key"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM