2017-07-19 409 views
0

這是我的代碼到目前爲止。當使用Python中要求我給出以下錯誤:當在python中使用請求時,我給出了以下錯誤「TLSV1_ALERT_PROTOCOL_VERSION。」爲什麼會發生這種情況?

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' 

回答

1

你沒有提到你使用哪個版本的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的安裝,因爲它可能不是關於OpenSSL的benefitting from an update released last September

看着網絡上的幾個例子後,我相信最直接的和全面的方式重新安裝openssl和升級brew(假設沒有任何其他問題)是通過運行:

brew uninstall openssl 

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

採取由brew doctor修復帶來了任何問題,時間終於運行

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

這裏有一個注意事項,升級Homebrew會將您安裝的所有軟件包更新爲最新版本。如果您的某些其他編碼項目依賴於以前版本brew中包含的現在不推薦使用的軟件包,則這可能不適合您。我不認爲這是一個大問題,但只是一個參考!

如果這種卸載的OpenSSL不適用於您,那麼有other ways,但是如果上述解決方案不起作用,我會想象會出現更大的問題。

希望它有幫助!

來源

+0

好吧我的OpenSSL BREW版本現已更新,但Python版本一直沒有。我在網上嘗試過各種解決方案,但沒有一個似乎在工作。具體來說,我試圖將我的bash配置文件的路徑更改爲/ usr/local/bin /,並嘗試安裝python --with-brewed-openssl,但都沒有工作。 –

+0

你也運行過'釀造升級'嗎? – cosinepenguin

+0

是的,我做到了。我現在試了一些其他的東西,但它仍然沒有修復它。 –

相關問題