Python请求返回“无法连接到代理&错误10061“

时间:2016-08-30 10:04:14

标签: python tcp connection python-requests

我使用PyQt4开发了一个桌面客户端,它通过requests lib连接到我的Web服务。你知道,requests可能是最有用的http客户端之一,我认为应该没问题。我的桌面客户端工作正常,直到发生奇怪的事情。

我使用以下代码向我的服务器发送请求。

response = requests.get(url, headers = self.getHeaders(), timeout=600, proxies = {}, verify = False)

其中header仅包含auth令牌。

 def getHeaders(self, additional = None):
    headers = {
               'Auth-Token' : HttpBasicClient.UserAuthToken,
               }
    if additional is not None:
        headers.update(additional)
    return headers

我无法连接到我的网络服务,所有的http请求都弹出相同的错误“'无法连接到代理。',错误(10061,'')”。例如:

  

GET Url:http:// api.fangcloud.com/api/v1/user/timestamp   HTTPSConnectionPool(host ='api.fangcloud.com',port = 443):使用url超出最大重试次数:/ api / v1 / user / timestamp(由ProxyError引起('无法连接到代理。',错误(10061,'' )))

此API除了返回我的服务器的时间戳之外什么都不做。当我将网址复制到具有相同环境的同一台计算机中的Chrome时,它会返回正确的响应。但是,我的桌面客户端只能返回错误。请求lib是否有问题?

我用谷歌搜索了连接错误10061的问题(“由于目标机器主动拒绝它,因此无法建立连接”)。这可能是由Web服务器的TCP连接拒绝引起的。

  

客户端向服务器发送一个SYN数据包,目标是端口(HTTP为80)。在端口80上运行服务的服务器将使用SYN ACK进行响应,但如果不是,则它将使用RST ACK进行响应。您的客户端到达服务器,但不是预期的服务。这是服务器可以“主动拒绝”连接尝试的一种方式。

但为什么呢?我的客户端之前工作正常,Chrome仍然有效。我的机器上没有代理。我有什么想念吗?

1 个答案:

答案 0 :(得分:0)

我注意到URL中有空格,这是正确的吗? 我在ipython中测试了请求..响应是:

{
   "timestamp": 1472760770,
   "success": true
}

适用于HTTP和HTTPS。