簡體   English   中英

在python中使用請求時,出現以下錯誤“ TLSV1_ALERT_PROTOCOL_VERSION”。為什么會發生這種情況?

[英]When using requests in python I'm given the following error “TLSV1_ALERT_PROTOCOL_VERSION.” Why might this be happening?

到目前為止,這是我的代碼。 在Python中使用請求時,出現以下錯誤:

TLSV1_ALERT_PROTOCOL_VERSION.

為什么會這樣呢?

import requests

def lambda_handler(event, context):

     # context = ssl.OPENSSL_VERSION_INFO

     # print(context)
     # if event['session']['application']['applicationId'] != app_id:
     #     raise ValueError("Invalid Application ID")

     token = requests.post(html, data={'apikey': api_key}, auth=(username, password), verify=False)

     print(token.text)
     payload = {'token': token}

     requests.post(html_step_two, data=payload,  verify=False)

     payload = {'token': token, 'workflow_id': workflow_id}
     requests.post(workflow_run, data=payload,  verify=False)

     return 'Hello from Lambda'

您沒有提到使用哪個版本的openSSL,但這很可能是罪魁禍首! 這是一個相當普遍的問題,似乎最好通過全新安裝openSSL和Python來解決。

要檢查您使用的是哪個版本的openSSL,請轉到您的Python終端並輸入

import platform
import ssl

print("Python info: %s" % (platform.python_version()))
print("OpenSSL info: %s" % (ssl.OPENSSL_VERSION))

如果OpenSSL信息作為OpenSSL 0.9.8zh 14 Jan 2016返回,則可能會遇到問題。 在我的Mac上,這將返回OpenSSL 1.0.2j 26 Sep 2016 ,可與我過去使用的其他請求應用程序一起使用。

此時的解決方案可能是卸載openSSL並重新安裝它! 但是,您可能還想升級brew的安裝,因為它可能無法從去年9月發布的有關OpenSSL 的更新中受益

在查看了網上的一些示例之后,我相信重新安裝openssl和升級brew的最直接,最全面的方法(假設沒有其他問題)是通過運行:

brew uninstall openssl

brew update && brew upgrade && brew cleanup && brew doctor

在最終運行之前,花時間修復brew doctor提出的任何問題

brew install openssl

這將確保您正在運行最新版本的OpenSSL,並應有助於解決該問題!

在此處的補充說明, 升級Homebrew會將所有已安裝的軟件包更新為最新版本。 如果您的某些其他編碼項目依賴於brew版本中現已棄用的軟件包,那么這對於您可能不是理想的。 我認為這不會是一個大問題,而只是一個供參考!

如果此OpenSSL卸載對您不起作用,則有其他方法 ,但是我可以想象,如果上述解決方案不起作用,則會出現更大的問題。

希望能幫助到你!

資料來源

暫無
暫無

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

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