的Python - urllib2的超时

问题描述:

我得到了下面的东西是我的代码片段的Python - urllib2的超时

opener = urllib2.build_opener(redirect_handler.MyHTTPRedirectHandler()) 
opener.addheaders = [('Accept-encoding', 'gzip')] 
fetch_timeout = 12 
self.response = opener.open(url, timeout=fetch_timeout) 

但是,它的代码仍然等待60〜秒超时前... 任何线索?

您使用的是哪个版本。它在2.6

添加另外的方法是

urllib2.urlopen(url[, data][, timeout]) 

你可以尝试提供

self.response = opener.open(url, None, fetch_timeout) 

呀为人人,人,你仍然可以使用插座模块设置套接字超时。

在猜测你可能需要设置套接字超时

import socket 

default_timeout = 12 

socket.setdefaulttimeout(default_timeout) 
+0

+1,当你进来时,我正在编辑我的答案。这适用于所有版本。 – pyfunc 2010-11-17 19:09:18

+2

似乎并不想工作。做socket.setdefaulttimeout(12)然后打印socket.getdefaulttimeout()说None这是OSX上的2.6.1 Snow Leopard – Wizzard 2010-11-18 09:07:19