2015-08-17 141 views
1

我試圖訪問這個網站使用Python httplib2的:SSL握手錯誤:[錯誤1]

https://www.talkmore.no/talkmore3/servlet/Login 

但我得到這個錯誤:

httplib2.SSLHandshakeError: [Errno 1] _ssl.c:510: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 

這是Python代碼我使用:

login = "user" 
pwd = "pass" 
headers = {'Content-type': 'application/x-www-form-urlencoded'} 
data = {'username':login, 'password':pwd} 
h = httplib2.Http(".cache", disable_ssl_certificate_validation=True) 

resp, content = h.request("https://www.talkmore.no/talkmore3/servlet/Login", "POST", urlencode(data)) 

我曾嘗試與其他圖書館,但出現同樣的錯誤..

+1

您應該使用'REQUESTS'庫。它比'HTTPLIB'更好,它支持'SSL'。這個代碼使用請求會更簡單! –

+0

我得到了與請求相同的錯誤.. – EspenG

+0

我並不是說'request'會解決錯誤,我只是說請求是一個更好的庫。 –

回答

0

服務器本身很好,支持TLS1.0 ... TLS1.2(但不支持SSL 3.0)。它還支持常用的密碼,並使用您的Python代碼給我沒有錯誤。這意味着你要麼安裝了一些舊版本的python/OpenSSL版本(問題中缺少版本的詳細信息),或者在中間有一些中間環節阻止連接(即防火牆或類似環境)。

請嘗試使用同一臺機器上的普通瀏覽器訪問同一個https站點,以查看是否遇到同樣的問題。如果是,那麼有一些中間件會阻止數據。如果瀏覽器成功,請使用tcpdump或類似工具捕獲數據包,以查看瀏覽器發送的數據與測試程序之間的差異,從而縮小潛在問題的範圍。