2011-01-22 78 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中打開某些東西,只是爲了測試。

相關問題