[英]TLSV1_ALERT_PROTOCOL_VERSION with python requests package
[英]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.