2010-11-05 50 views
1

我在Ubuntu 10.10上遇到了urllib2.urlopen()的奇怪行为。对网址的第一个请求进行得很快,但第二个请求需要很长时间才能连接。我想在5到10秒之间。在Windows上,这只是正常工作?Ubuntu 10.10上的奇怪urllib2.urlopen()行为

有没有人有一个想法可能会导致这个问题?

感谢,ONNO

+0

这可能是一个愚蠢的问题,但只是为了确保__is它是相同的网址??? __ – mouad 2010-11-05 23:46:01

+0

是的,他们都是一样的。 – Fino 2010-11-06 07:34:14

回答

3

5秒听起来很像的DNS解析超时。

一个预感,它可能是通过您的/etc/resolv.conf中的DNS服务器循环,如果其中一个坏了,Linux的默认超时时间是5秒,之后它会尝试下一个循环回到顶部当它尝试所有。

如果resolv.conf中列出了多个DNS服务器,请尝试删除除一个以外的所有DNS服务器。如果这能解决它;那么之后,看看为什么你被分配了不正确的解析服务器。

+0

你做了我的一天! /etc/resolv.conf指向我的路由器。我改变了这个谷歌DNS服务器,这两个电话都达到正常速度。 – Fino 2010-11-06 07:40:15

1

您可以启用的urllib2的调试,也许它可以帮助你发现了问题

import urllib2 

opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1)) 
opener.open('http://www.google.com') 
+0

谢谢,我已经使用了debuglevel = 1,但它没有给我任何线索。两个调试信息都是一样的。 – Fino 2010-11-06 07:30:29