HTTPConnection超时未按预期启动

时间:2013-02-01 23:08:40

标签: python http timeout httpconnection

我有一个Python脚本,递归地将数据发送到中央服务器。路由器将进入休眠状态,直到有新的数据排队等待传输。唤醒过程大约需要20秒左右,因此我尝试按如下方式建立连接:

TIMEOUT = 100
def connect():
    return HTTPConnection(HOST, timeout=TIMEOUT)

connection = connect()

现在,我希望函数HTTPConnection()只在超时到期时才返回,这不是它正在做的事情。我的函数在3秒左右后返回,并给出了连接错误。这是为什么?我需要编写自己的超时循环吗?

谢谢你, 罗恩

1 个答案:

答案 0 :(得分:0)

好吧,我最终解决问题的方法是,为了唤醒路由器,我发送了一个非常长的超时ping到8.8.8.8,这将唤醒路由器并得到回复

def wakeup():
    subprocess.Popen(["/bin/ping", "-c2", "-w"+str(WAKETIME), PINGHOST], stdout=subprocess.PIPE).stdout.read()

我只是在执行任何其他http请求之前调用此函数,因此我根本无需增加HTTP超时。