当我尝试从我自己的域名下载某些东西时,为什么我会超时?

时间:2010-04-03 00:51:10

标签: python django

def download(source_url):
    socket.setdefaulttimeout(10)
    agents = ['Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)','Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)','Microsoft Internet Explorer/4.0b1 (Windows 95)','Opera/8.00 (Windows NT 5.1; U; en)']
    ree = urllib2.Request(source_url)
    ree.add_header('User-Agent',random.choice(agents))
    resp = urllib2.urlopen(ree)
    htmlSource = resp.read()
    return htmlSource


url = "http://myIP/details/?id=4"
result_html = download(url)

它不应该超时......即使超时10秒......

2 个答案:

答案 0 :(得分:1)

如果您正在运行开发服务器,这将失败,因为它是单线程的并且它正在忙于提供原始请求。如果你想要它可以使用mod_wsgi或绑带CherryPy之类的东西。

答案 1 :(得分:0)

当你说“你自己的域名”时,你是否从NAT防火墙内部命中它?

这样的东西?

123.1.2.3(public myIP)< - NAT gateway - > 192.168.1.5(服务器的私有IP)< - > 192.168.1.10(你)

许多防火墙不允许内部地址在没有DNS重写的情况下访问外部接口。 DNS重写会导致防火墙拦截您的DNS查找并使用私有IP重写生成的公共IP。