2013-06-02 168 views
1

我在Windows 7 x64上使用請求1.2.3,並試圖通過HTTPS使用HTTPS連接(任意)站點通過將proxies參數傳遞給請求來進行代理。具有請求的HTTPS代理:[Errno 8] _ssl.c:504:EOF違反協議

我在使用urllib2ProxyHandler時沒有遇到這個錯誤,所以我認爲它不在我的代理端。

>>> opener = urllib2.build_opener(urllib2.ProxyHandler({'https': 'IP:PORT'})) 
>>> resp = opener.open('https://www.google.com') 
>>> resp.url 
'https://www.google.co.uk/' 
>>> resp = requests.get('https://www.google.com', proxies={'https': 'IP:PORT'}) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\requests\api.py", line 55, in get 
    return request('get', url, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\api.py", line 44, in request 
    return session.request(method=method, url=url, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 335, in request 
    resp = self.send(prep, **send_kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 438, in send 
    r = adapter.send(request, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\adapters.py", line 331, in send 
    raise SSLError(e) 
requests.exceptions.SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol 

我也許應該注意到,如果我通過verify=False請求同樣的錯誤仍然發生。

有什麼建議嗎?我已經看過相關的問題,但沒有爲我工作。

+0

如果你像我一樣都來至9月,2013年後這個問題 - 那麼請檢查要求2.0。 0。它具有更好的HTTPS代理,因此它可以與所有代理一起使用。參考文獻:http://stackoverflow.com/questions/18675872/requests-exceptions-sslerror-errno-8-ssl-c504-eof-occurred-in-violation-of –

回答

3

我懷疑你的代理是一個http代理,你可以使用https(普通情況下) 問題是,如果請求本身https,請求使用https與代理交談。 使用一個明確的協議(http)爲您的代理應該解決的事情:proxies={'https': 'http://IP:PORT'}

也看看https://github.com/kennethreitz/requests/issues/1182

相關問題