2011-08-16 94 views
1

我想通過多部分/表單數據將文件從Python發佈到Jenkins。請求主體看起來是這樣的:將文件發佈到Jenkins失敗

--===============1849003312== 
Content-Type: application/octet-stream 
Content-Transfer-Encoding: base64 
Content-Disposition: file; name="file0"; filename="meta.xml" 

PHhtbD4NCjwveG1sPg0K 

--===============1849003312==-- 

這將導致詹金斯但其最終引發異常,其中最相關的位如下:

Exception: <br>Stacktrace: <pre>org.apache.commons.fileupload.FileUploadException: Stream ended unexpectedly 
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:381) 
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) 
    at org.kohsuke.stapler.RequestImpl.parseMultipartFormData(RequestImpl.java:767) 
    at org.kohsuke.stapler.RequestImpl.getSubmittedForm(RequestImpl.java:782) 

這有什麼錯我的POST請求?

編輯: 請求頭如下:

的Content-Type:

multipart/form-data; boundary="===============1849003312=="  

MIME-版本:

1.0 
+1

POST請求的Content-Type頭是什麼?請張貼它的價值,這很重要。 –

+0

@Wladimir Palant Done – aknuds1

+0

「Content-Type」標題中的邊界與POST正文中使用的邊界不匹配。 –

回答

0

我相信Content-Disposition: file;應改爲Content-Disposition: attachment;FileUploadBase的源代碼沒有提及「文件」,並且RFC 2183沒有列出「文件」作爲內容處置的值。

+0

謝謝,明天再試。 – aknuds1

+0

我嘗試將「文件」更改爲「附件」以進行內容處理,但實際上沒有任何區別(發生相同的異常)。同樣看着FileUploadBase.java源代碼,它看起來並不像內容處置對拋出的異常很重要。 – aknuds1