1

我正在尝试使用 python 发布一些数据,本质上是一个非常大的 JSON 文件(大约 420kB)。问题是它在发布到本地服务器时工作正常,但对于任何外部服务器都会超时。代码如下所示:

headers = {
"Content-Type": "application/json",
"Accept": "application/json"
};

response, content = httplib2.Http().request( 
    uri="http://%s:%s/json" % (host, port), method='POST',
    headers=headers, 
    body=json_string )

我得到的错误类似于:

socket.error: [Errno 60] Operation timed out

对此有什么想法吗?我在想也许本地的套接字连接超时,但我不知道如何解决这个问题。“导入套接字”库中的所有套接字调用似乎都没有效果。

更新

我现在已经在几个不同的网络上尝试过了,这似乎是一个超时问题,因为除了我现在使用的相对较慢的网络之外,该脚本适用于所有其他网络。所以选择要么以某种方式流式传输数据,要么找出一种有效增加超时的方法。

4

1 回答 1

0

似乎响应所需的时间大于默认超时。尝试在

response, content = httplib2.Http().request( 
uri="http://%s:%s/json" % (host, port), method='POST',
headers=headers, 
body=json_string , timeout=100 ) (set the time as required)

或者你可以设置一个足够大的套接字超时来带来响应

import socket
timeout = 100 (set the time as required)
socket. setdefaulttimeout(timeout)
于 2013-06-12T07:08:36.510 回答