大型python JSON帖子请求超时

时间:2013-06-12 02:24:25

标签: python http rest post httplib2

我正在尝试使用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”库的所有套接字调用似乎都没有效果。

更新

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

1 个答案:

答案 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)