簡體   English   中英

Python API 調用使用請求拋出最大重試次數超過 url 錯誤

[英]Python API call using requests throws Max retries exceeded with url error

我正在嘗試使用 Python 請求訪問 https API 請求。 我獲得了一個證書和一個密碼來訪問它。

我越來越

HTTPSConnectionPool(host='abc.coom', port=443): Max retries exceeded with url: //AIMWebService//api//Accounts?AppID=xyz&Safe=123&Object=obj  (Caused by SSLError(SSLError(9, '[SSL] PEM lib (_ssl.c:4024)')))

早些時候,我訪問了這個 API 並通過在設置->證書中添加證書以及密碼在 Postman 中成功獲得結果。

import json
import requests

clientCrt = "C:\\abc\\abc-Certs\\cert-TEST.pfx"

#clientKey = "Passphrase"
url = "https://abc.coom/AIMWebService/api/Accounts?AppID=xyz&Safe=123&Object=obj"
certServer = "C:\\Users\\MyName\\Anaconda3\\Lib\\site-packages\\certifi"
headers = {'content-type': 'application/json'}
#r = requests.get(url, verify=False, headers=headers, cert=(clientCrt, clientKey))
r = requests.get(url, verify=False, headers=headers, cert=clientCrt)
#r = requests.get(url, verify=certServer, headers=headers, cert=clientCrt)
#r = requests.get(url, verify=False, headers=headers)
print(r.status_code)
print(r.json())

如您所見,我嘗試了多種選項來訪問它。 通過使用 verify=False,我認為我根本不需要使用密碼。

有人可以幫我克服這個問題嗎?

requests需要PEM格式的證書,您的.pfx文件是PKCS#12格式。

您可以更改證書格式: Converting pfx to pem using openssl

或者您可以使用這個來為請求添加 PKCS#12 支持。

暫無
暫無

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

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