簡體   English   中英

Python請求使用HTTPS調用失敗

[英]Python requests call fails with HTTPS

我正在AWS的NGINX Web服務器后面運行Flask Restful API。 我正在用我的Pi的python模塊實現這一目標。

當我使用HTTP調用api時,一切工作正常。 但是我只是鎖定了我的api,因此只能使用HTTPS。 我更改了python模塊使用的UIRL,但現在失敗了。 代碼非常簡單...摘錄如下:

jsonpkg = {'subscriberID': self.api_login, 'token': self.api_token,
              'content': speech_content}
headers = {'Content-Type': 'application/json'}
r = requests.post(self.api_apiurl, data=json.dumps(jsonpkg), headers=headers)

這些值是由類init部分正確設置的。 我在頂部導入了請求模塊。 錯誤消息表明它正在使用python 2.7。 但是,當我監視API時,我什至看不到它碰到服務器。 我可以將瀏覽器指向api及其正常工作。

我是否了解python 2.7中的請求模塊不支持https?

我需要為https發送其他參數嗎?

啊哈! 通過深入研究請求模塊文檔,我找到了答案。 如果我使用以下

r = requests.post(self.api_apiurl, data=json.dumps(jsonpkg), headers=headers, verify=False)

然后就可以了。 因此,問題在於驗證證書。 我不太確定為什么瀏覽器沒有此功能...但是也許它會自動執行其他操作。 因此,我不需要驗證證書,也不必具有可以驗證的本地副本(?)。


最終更新:

我終於弄清楚了如何將我的站點證書與鏈式證書連接起來(並理解原因)。 這個網站在這里是一個很大的幫助。 另外,一旦將它們串聯起來,您可能會收到第二個錯誤,如果您使用google,則會發現這是由於在第一個證書之后和第二個證書之前需要回車引起的(請使用記事本編輯生成的串聯文件)。 然后,我可以使用“ verify = True”將帖子恢復為原來的狀態,從而消除了有關不進行驗證的警告。

暫無
暫無

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

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