2012-08-02 165 views
1

我安装了requestspython请求无法发送https请求

但是我无法发送HTTPS请求,即使像这样简单:

requests.get('https://www.google.com') 

的错误信息是:

_ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 

更新:我可以发送HTTPS请求使用其他方法,urllib2的, httplib可以成功发送https请求

+0

适用于此。你从哪里安装请求? – 2012-08-02 09:28:58

+0

您是否使用无法处理https的代理服务器? – 2012-08-02 09:31:31

+0

你可以ping通该地址吗? – 2012-08-02 09:36:52

回答

4

这不是requests或甚至Python的问题。

您很可能使用的代理服务器未正确配置为处理SSL连接。确切的问题非常依赖代理服务器。对140770FC错误的谷歌搜索会给你很多点击和讨论如何诊断。

请注意,即使您尚未在本地计算机上配置代理,公司防火墙仍可能会强制HTTPS连接在网络边界处通过代理。

+0

但是为什么urllib2,httplib可以成功?另外,在同一台机器上,我可以使用java发送https连接 – jiluo 2012-08-02 09:46:22

+0

@MartinLuo:请求中的标题可能导致代理和/或Google的行为不同?例如,某些代理无法处理来自服务器的SSL重定向。 – 2012-08-02 09:48:10

+0

我只是使用这个简单的代码urllib2.urlopen('https://www.google.com'),我不认为这可能会有不同的结果 – jiluo 2012-08-02 09:50:20