如何使用Java进行多部分/表单数据发布请求?

如何使用Java进行多部分/表单数据发布请求?

在ApacheCommonsHttpClient的3.x版本中,提出多部分/表单数据POST请求是可能的(2004年的一个例子)。不幸的是,这在HttpClient 4.0版.

对于我们的核心活动“HTTP”,MultiPart有点超出了范围。我们希望使用由其他项目维护的多部分代码,但我不知道。几年前,我们试图将多部分代码转移到Common-codec,但我没有离开那里。Oleg最近提到了另一个具有多部分解析代码的项目,它可能对我们的多部分格式代码感兴趣。我不知道目前的情况。(http:/www.nabble.com/MultiPart-form-data-in-4.0-td14224819.html)

有没有人知道有哪个Java库允许我编写一个HTTP客户端,它可以发出多部分/表单数据POST请求?

背景:我想使用Zoho Writer的远程API.


12345678_0001
浏览 634回答 3
3回答

森林海

这些是我的Maven依赖项。Java代码:HttpClient&nbsp;httpclient&nbsp;=&nbsp;new&nbsp;DefaultHttpClient();HttpPost&nbsp;httpPost&nbsp;=&nbsp;new&nbsp;HttpPost(url);FileBody&nbsp;uploadFilePart&nbsp;=&nbsp;new&nbsp;FileBody(uploadFile);MultipartEntity&nbsp;reqEntity&nbsp;=&nbsp;new&nbsp;MultipartEntity();reqEntity.addPart("upload-file",&nbsp;uploadFilePart);httpPost.setEntity(reqEntity);HttpResponse&nbsp;response&nbsp;=&nbsp;httpclient.execute(httpPost);um.xml中的maven依赖项:<dependency> &nbsp;&nbsp;<groupId>org.apache.httpcomponents</groupId> &nbsp;&nbsp;<artifactId>httpclient</artifactId> &nbsp;&nbsp;<version>4.0.1</version> &nbsp;&nbsp;<scope>compile</scope></dependency><dependency> &nbsp;&nbsp;<groupId>org.apache.httpcomponents</groupId> &nbsp;&nbsp;<artifactId>httpmime</artifactId> &nbsp;&nbsp;<version>4.0.1</version> &nbsp;&nbsp;<scope>compile</scope></dependency>

犯罪嫌疑人X

如果JAR的大小很重要(例如,在applet的情况下),还可以直接使用httpMIME和java.net.HttpURLConnection,而不是HttpClient。httpclient-4.2.4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;423KBhttpmime-4.2.4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26KBhttpcore-4.2.4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;222KBcommons-codec-1.6:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;228KBcommons-logging-1.1.1:&nbsp;&nbsp;60KBSum:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;959KBhttpmime-4.2.4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26KBhttpcore-4.2.4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;222KBSum:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;248KB代码:HttpURLConnection&nbsp;connection&nbsp;=&nbsp;(HttpURLConnection)&nbsp;url.openConnection();connection.setDoOutput(true);connection.setRequestMethod("POST");FileBody&nbsp;fileBody&nbsp;=&nbsp;new&nbsp;FileBody(new&nbsp;File(fileName));MultipartEntity&nbsp;multipartEntity&nbsp;=&nbsp;new&nbsp;MultipartEntity(HttpMultipartMode.STRICT);multipartEntity.addPart("file",&nbsp;fileBody);connection.setRequestProperty("Content-Type",&nbsp;multipartEntity.getContentType().getValue());OutputStream&nbsp;out&nbsp;=&nbsp;connection.getOutputStream();try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;multipartEntity.writeTo(out);}&nbsp;finally&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;out.close();}int&nbsp;status&nbsp;=&nbsp;connection.getResponseCode();...依赖项在头xml中:<dependency> &nbsp;&nbsp;&nbsp;&nbsp;<groupId>org.apache.httpcomponents</groupId> &nbsp;&nbsp;&nbsp;&nbsp;<artifactId>httpmime</artifactId> &nbsp;&nbsp;&nbsp;&nbsp;<version>4.2.4</version></dependency>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java