【问题标题】:python requests can not send https requestpython请求无法发送https请求
【发布时间】:2012-08-02 09:27:08
【问题描述】:

我安装了requests

但我无法发送 https 请求,即使这么简单:

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

错误信息是:

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

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

【问题讨论】:

  • 在这里工作。您从哪里安装请求?
  • 您是否使用了无法处理 https 的代理服务器?
  • 你能ping到那个地址吗?
  • @Tichodroma 我在 virtualenv 中使用 pip 安装请求
  • @MartinLuo:实际上,我越来越相信你是这样的,但也许你并没有意识到这一点。在当前网络外部的另一台计算机上尝试此操作。

标签: python https python-requests


【解决方案1】:

requests 甚至 Python 都不是问题。

您很可能使用了未正确配置为处理 SSL 连接的代理服务器。确切的问题在很大程度上取决于代理服务器。对 140770FC 错误进行 Google 搜索将为您提供很多关于如何诊断此问题的点击和讨论。

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

【讨论】:

  • 但是为什么urllib2、httplib可以成功呢?另外,在同一台机器上,我可以使用java发送https连接
  • @MartinLuo:请求中的标头可能导致代理和/或 Google 行为不同?例如,某些代理无法处理来自服务器的 SSL 重定向。
  • 我只是使用这个简单的代码 urllib2.urlopen('google.com'),我认为这不会有不同的结果
  • @MartinLuo:当然可以; requests 例如设置不同的用户代理标头。
猜你喜欢
  • 2011-07-17
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多