我正在尝试使用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
对此有何想法?我当时认为本地的套接字连接可能超时,但我不知道如何解决这个问题。来自“import socket”库的所有套接字调用似乎都没有效果。
更新
我现在已经在几个不同的网络上尝试过了,似乎这是一个超时问题,因为除了我现在相对较慢的网络外,该脚本适用于所有其他网络。因此,选择会以某种方式流式传输数据或找出有效增加超时的方法。
答案 0 :(得分: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)