2011-01-22 42 views
1

我正在使用线程,我需要使用线程下载网站。我也有一个线索将请愿书发送到网站,但不等待答案。 不等待的一个是这样的:urllib.urlopen不会在线程上执行

class peticion(Thread): 
    def __init__(self, url): 
     Thread.__init__(self) 
     self.url = url 

    def run(self): 
     f = urllib.urlopen(self.url) 
     f.close() 

这一个工作正常,但是有等待响应的一个需要像一个随机的时间才能完成,从5秒到2分钟,或它可能永远不会完成。这是类:

class playerConn(Thread): 
    def __init__(self, ev): 
     Thread.__init__(self) 
     self.ev = ev 

    def run(self): 
     try: 
      params = urllib.urlencode('''params go here''') 
      f = urllib.urlopen('''site goes here''') 
      resp = f.read() 
      f.close() 
     finally: 
      # do something with the response 

不管是不是我用的try ... finally语句不工作,urlopen功能后的代码不会得到执行。

我该怎么办?

+2

我刚刚试过你的代码,它基本上像我写的那样工作。也许检查打开网址时出现错误,如404或其他? – 2011-01-22 14:44:11

回答

0

它似乎只是一个URL的问题,代码是好的,它似乎没有做错什么。 我敢打赌,你有一些类型的问题从网站上,也许是404或类似的。 尝试在localhost中打开某些东西,只是为了测试。

相关问题