2011-09-19 66 views
0
from poster.encode import multipart_encode 
from poster.streaminghttp import register_openers 

    def picscrazy(str,int): 


      register_openers() 
      datagen, headers = multipart_encode({"imagefile[]": open(str, "rb")}) 
      request = urllib2.Request("http://www.picscrazy.com/process.php", datagen, headers) 

str是文件名,int是另一個標誌。 代碼是將文件上傳到圖像託管網站。我使用海報Poster作爲發佈請求。該程序在請求語句後停止並出現錯誤。我無法理解錯誤,無論它是我的網絡還是程序中的問題。 下面是錯誤的回溯:程序突然停止並拋出URLERROR

Traceback (most recent call last): 
    File "C:\Documents and Settings\Administrator\Desktop\for exbii\res.py", line 42, in <module> 
    picscrazy(fname,1) 
    File "C:\Documents and Settings\Administrator\Desktop\for exbii\res.py", line 14, in picscrazy 
    print(urllib2.urlopen(request).read()) 
    File "C:\Python25\Lib\urllib2.py", line 121, in urlopen 
    return _opener.open(url, data) 
    File "C:\Python25\Lib\urllib2.py", line 374, in open 
    response = self._open(req, data) 
    File "C:\Python25\Lib\urllib2.py", line 392, in _open 
    '_open', req) 
    File "C:\Python25\Lib\urllib2.py", line 353, in _call_chain 
    result = func(*args) 
    File "C:\Python25\lib\poster\streaminghttp.py", line 142, in http_open 
    return self.do_open(StreamingHTTPConnection, req) 
    File "C:\Python25\Lib\urllib2.py", line 1076, in do_open 
    raise URLError(err) 
URLError: <urlopen error (10054, 'Connection reset by peer')> 
+0

「通過對等方重置連接」是一個提示。您的對等方(服務器)重置連接。 –

+0

那麼這是否意味着服務器我上傳文件是拒絕我的請求? – Jonah

+0

「拒絕」?很難說。它正在斷開連接。誰知道爲什麼?您必須閱讀「請求」對象的內容以獲取狀態碼,標題和正文。然後,您可以**更新**您的問題以刪除(幾乎)無用的堆棧跟蹤,幷包含有關您所得到的響應的真正有趣的事實。 –

回答

2

如果你不能來顯示從服務器返回的報頭,那麼,您的服務器只需打斷一下。

這可能是你的要求不好 - 但這不太可能。

可能是因爲你超出了帶寬限制。

您的請求可能是DDOS攻擊,因爲它們發生得太頻繁。

+0

是的,那天我有一個波濤洶涌的連接,所以服務器沒有正確響應它的工作現在..不管怎麼說,謝謝你的努力! – Jonah