Rus*_*uss 70 java multipartform-data apache-httpclient-4.x
我对HttpClient非常环保,而且我发现缺少(和或明显不正确)的文档非常令人沮丧.我正在尝试使用Apache Http Client实现以下帖子(如下所列),但不知道如何实际执行此操作.我将在下周的文档中埋葬自己,但也许更有经验的HttpClient程序员可以尽快给我一个答案.
帖子:
Content-Type: multipart/form-data; boundary=---------------------------1294919323195
Content-Length: 502
-----------------------------1294919323195
Content-Disposition: form-data; name="number"
5555555555
-----------------------------1294919323195
Content-Disposition: form-data; name="clip"
rickroll
-----------------------------1294919323195
Content-Disposition: form-data; name="upload_file"; filename=""
Content-Type: application/octet-stream
-----------------------------1294919323195
Content-Disposition: form-data; name="tos"
agree
-----------------------------1294919323195--
Run Code Online (Sandbox Code Playgroud)
mto*_*omy 98
使用HttpMime库中的 MultipartEntityBuilder 来执行所需的请求.
在我的项目中,我这样做:
HttpEntity entity = MultipartEntityBuilder
.create()
.addTextBody("number", "5555555555")
.addTextBody("clip", "rickroll")
.addBinaryBody("upload_file", new File(filePath), ContentType.create("application/octet-stream"), "filename")
.addTextBody("tos", "agree")
.build();
HttpPost httpPost = new HttpPost("http://some-web-site");
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity result = response.getEntity();
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助.
(更新了这篇文章以使用MultipartEntityBuilder而不是弃用的MultipartEntity,使用@mtomy代码作为示例)
Li *_*ing 14
MultipartEntity现在显示为已弃用.我正在使用apache httpclient 4.3.3 - 有谁知道我们应该使用什么代替?我发现谷歌搜索充满了MultipartEntity示例,我找不到任何东西. - vextorspace 2014年3月31日20:36
以下是HttpClient 4.3.x中的示例代码
import org.apache.http.entity.mime.MultipartEntityBuilder;
HttpPost httppost = new HttpPost("http://localhost:8080" +
"/servlets-examples/servlet/RequestInfoExample");
FileBody bin = new FileBody(new File(args[0]));
StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN);
HttpEntity reqEntity = MultipartEntityBuilder.create()
.addPart("bin", bin)
.addPart("comment", comment)
.build();
httppost.setEntity(reqEntity);
Run Code Online (Sandbox Code Playgroud)
要使用MultipartEntityBuilder类,您需要httpmime,它是HttpClient的子项目
HttpClient 4.3.x:
http://hc.apache.org/httpcomponents-client-4.3.x/index.html
httpmime 4.3.x:
http://hc.apache.org/httpcomponents-client-4.3.x/httpmime/dependency-info.html
| 归档时间: |
|
| 查看次数: |
83466 次 |
| 最近记录: |