【发布时间】:2011-08-16 12:59:46
【问题描述】:
我正在尝试通过 multipart/form-data 从 Python 向 Jenkins 发布一个文件。请求正文如下所示:
--===============1849003312==
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: file; name="file0"; filename="meta.xml"
PHhtbD4NCjwveG1sPg0K
--===============1849003312==--
然而,这会导致 Jenkins 在其末尾引发异常,其中最相关的部分如下:
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 请求有什么问题?
编辑: 请求头如下:
内容类型:
multipart/form-data; boundary="===============1849003312=="
MIME 版本:
1.0
【问题讨论】:
-
POST 请求的
Content-Type头呢?请同时发布它的价值,这很重要。 -
Content-Type标头中的边界与 POST 正文中使用的边界不匹配。 -
@Wladimir Palant 哎呀,这是因为每次运行都会重新生成它。我会更新它们。
-
你能发布创建请求的完整代码吗?
标签: python http-post jenkins multipartform-data