You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Dominik Dorn (JIRA)" <ji...@apache.org> on 2010/07/28 12:13:18 UTC
[jira] Commented: (HTTPCLIENT-971) Multipart Post / FileUpload is
missing necessary boundary header
[ https://issues.apache.org/jira/browse/HTTPCLIENT-971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893127#action_12893127 ]
Dominik Dorn commented on HTTPCLIENT-971:
-----------------------------------------
The example in http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.2 starts with
<code>
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
</code>
which is exactly what is missing in the current behavior and what I'm asking for.
This is also the only thing that differs between a fileupload in firefox and httpcomponents-client.
If you're not going to fix it, please tell me how to do it myself (at least a hint).
> Multipart Post / FileUpload is missing necessary boundary header
> ----------------------------------------------------------------
>
> Key: HTTPCLIENT-971
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-971
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpMime
> Affects Versions: 4.0.1, 4.1 Alpha2
> Environment: Ubuntu 10, Java 6
> <dependency>
> <groupId>org.apache.httpcomponents</groupId>
> <artifactId>httpclient</artifactId>
> <!--<version>4.0.1</version>-->
> <version>4.1-alpha2</version>
> </dependency>
> <dependency>
> <groupId>org.apache.httpcomponents</groupId>
> <artifactId>httpmime</artifactId>
> <!--<version>4.0.1</version>-->
> <version>4.1-alpha2</version>
> </dependency>
> 4.0.1 and 4.1-alpha2 have this bug.
> Reporter: Dominik Dorn
> Priority: Minor
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> When doing a multipart post, with a code like this:
> <code>
> HttpPost post = new HttpPost("http://" + host + ":" + port + uploadUrl + token.getProgressToken());
> HttpContext context = new BasicHttpContext();
> CookieStore store = cred.getCookieStore();
> context.setAttribute(ClientContext.COOKIE_STORE, store);
> MultipartEntity entity = new MultipartEntity();
> HttpResponse response;
> try{
> entity.addPart("document[pdf_file]", new FileBody(file));
> entity.addPart("authenticity_token", new StringBody(token.getAuthenticityToken(), Charset.forName("UTF-8")));
> entity.addPart("document[progress_token]", new StringBody(token.getProgressToken(), Charset.forName("UTF-8")));
> post.setEntity(entity);
> HttpClient client = new DefaultHttpClient();
> response = client.execute(post, context);
> </code>
> The required initializing Header
> <code>
> Content-Type: multipart/form-data; boundary=---------------------------15590059519136285452113363602
> Content-Length: 38377
> -----------------------------15590059519136285452113363602
> Content-Disposition: form-data; name="authenticity_token"
> VkJ/mnCDmImYfEVT0zNFBvyyhihKSaUX5j7Vm7d0WUQ=
> </code>
> is missing.
> Instead it directly starts with
> <code>
> --gDRYDFqyzjuUrRL5No6B5wHN6BT5Ts2
> Content-Disposition: form-data; name="authenticity_token"
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> rvMzKRruVZaKX7JV+4Zpg7LWdxEuhq2hSgtaCIcSzCg=
> </code>
> The target server ( a rails one ) seems not to be able to understand this multipart upload.
> I think the correct place to fix is org.apache.http.entity.mime.MultipartEntity but I'm not sure where and how to do it.
> Please help.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org