- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些帮助,澄清如何将 HttpAsyncClient 与多部分实体一起使用。基本上,我正在尝试使用 HttpAsyncClient 将文件 (byte[]) 的内容上传为 MultiPart Body。我如何使用它的示例:
CloseableHttpAsyncClient httpAsyncClient = HttpAsyncClients.createDefault();
httpAsyncClient.start();
MultipartEntityBuilder reqEntity = MultipartEntityBuilder.create();
reqEntity.addPart("file",new ByteArrayBody(Base64.decodeBase64(fileContent),"");
reqEntity.addPart("fileSize",new StringBody("1234"));
reqEntity.addPart("fileName",new StringBody("xyz.txt"));
reqEntity.addPart("fileType",new StringBody("text/plain"));
reqEntity.addPart("SEQ_NUM",new StringBody("23432"));
HttpPost httppost = new HttpPost(endpointUrl);
httppost.setEntity(reqEntity.build());
Future<HttpResponse> future = httpAsyncClient.execute(httppost, null);
httpAsyncClient.close();
以下是为此实现添加到项目中的 Pom 依赖项:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.6</version>
</dependency>
现在,我被阻塞在抛出以下异常的地方:
java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException: Multipart form entity does not implement #getContent()
我在 Internet 上进行了大量搜索,但几乎找不到关于新 HttpAsyncClient 实现的详细信息。我发现一些用户被问到类似的问题,但没有一个解决方案适合我。
[HttpAsyncClient 多部分实体不工作?]在下面的链接中,用户建议用 BufferedHttpEntity 包装 MultipartEntity 实例。所以,我更新了代码如下(不确定它是否正确)但仍然是相同的异常。
CloseableHttpAsyncClient httpAsyncClient = HttpAsyncClients.createDefault();
httpAsyncClient.start();
MultipartEntityBuilder reqEntity = MultipartEntityBuilder.create();
reqEntity.addPart("file",new ByteArrayBody(Base64.decodeBase64(fileContent),"");
reqEntity.addPart("fileSize",new StringBody("1234"));
reqEntity.addPart("fileName",new StringBody("xyz.txt"));
reqEntity.addPart("fileType",new StringBody("text/plain"));
reqEntity.addPart("SEQ_NUM",new StringBody("23432"));
HttpPost httppost = new HttpPost(endpointUrl);
httppost.setEntity(new BufferedHttpEntity(reqEntity.build()));
Future<HttpResponse> future = httpAsyncClient.execute(httppost, null);
httpAsyncClient.close();
如果您能帮助确定原因,我将不胜感激。
引用资料:
最佳答案
MultipartFormEntity 不能异步使用。其中一个选项是将实体写出到 ByteArrayOutputStream 并从中创建一个 NByteArrayEntity。
File file = new File(filePath);
ByteArrayBody body;
body = new ByteArrayBody(FileUtils.readFileToByteArray(file), file.getName());
HttpEntity mEntity = MultipartEntityBuilder.create()
.setBoundary("-------------" + boundary)
.addPart("file", body)
.build();
ByteArrayOutputStream baoStream = new ByteArrayOutputStream();
mEntity.writeTo(baoStream);
HttpEntity nByteEntity = new NByteArrayEntity(baoStream.toByteArray(), ContentType.MULTIPART_FORM_DATA);
httppost.setEntity(nByteEntity );
关于apache-httpcomponents - 使用多部分实体实现 HttpComponent 的 HttpAsyncClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104778/
我需要一些帮助,澄清如何将 HttpAsyncClient 与多部分实体一起使用。基本上,我正在尝试使用 HttpAsyncClient 将文件 (byte[]) 的内容上传为 MultiPart B
我有一个包含 HTTP header 的字符串。我想将其转换为 Apache HttpComponents HttpRequest 对象。有没有一种方法可以做到这一点,而无需自己拆开字符串? 本教程:
如何使 http 组件中的调试日志静音? 09:23:22.145 [main] DEBUG o.a.h.c.protocol.RequestAddCookies - CookieSpec selec
使用我在这里找到的代码:http://hc.apache.org/httpcomponents-client-ga/quickstart.html我创建了一个快速 HTTP 客户端应用程序。这是一个代
我正在尝试学习如何使用 Apache HttpComponents 发送 HttpResponse。我发现some examples在 Apache 网站上,但它们非常困惑且不清楚。 在下面的代码中,
我找不到任何关于 httpclient 4.1 的默认 httpParams 的文档? 执行 GET 时的默认套接字超时是多少? 最佳答案 根据documentation ,http.socket.t
我正在尝试将 Apache httpcomponents-client 库添加到我的 Maven 项目中。我已经向 pom.xml 添加了一个依赖项(在 http://mvnrepository.co
只是尝试在Android应用中发出一些POST请求。我正在用独立脚本中的HttpClient 4.5.3(https://hc.apache.org/downloads.cgi)测试。一切正常,但是当
我当前正在运行一个程序,该程序将使用 Apache HttpComponents 从网站下载源代码。我将下载很多(10,000 个),因此我使用多个线程来执行此操作。 有时所有线程都会死亡(加入),有
我最近从 java.net 切换过来至org.apache.http.client ,我设置了一个 ClosableHttpClient与 HttpClientBuilder 。作为连接管理器,我使用
我已经构建了一个 Storm 拓扑,它通过 kafka-spout 从 Apache-Kafka 接收元组,将此数据(使用另一个 Bolt)作为字符串写入本地系统上的 .txt 文件中,并从之后是我的
在 Android 上使用和选择发出 HTTP(S) 请求的方式是一个长期的痛苦。 虽然 Google 希望我们使用 HttpURLConnection,但有些人更喜欢使用 HttpClient。 有
我遇到了有关使用 apaches httpcomponents 进行基于证书的身份验证的问题。每次我启动请求时,我都会收到响应代码 403。如果我关闭 ssl 加密和身份验证,则可以成功建立连接。 我
根据 http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client
我正在编写一个 Java 程序,它使用 Apache-HttpComponents 加载页面并将其 HTML 打印到控制台;但是,该程序在抛出此错误之前仅打印了部分 HTML:每次我运行该程序时,在这
我想用 Apache http-components (4.1.2) 执行这个命令 curl --data "strings[]=testOne&string-keys[]=test.one&st
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
我想获取网站的 html,就像使用浏览器浏览一样。 当我尝试获取网站的 html 时,它与我使用 chrome 时的情况不同,我想知道是否可以使用 apache 的 HttpComponents 发出
我目前正在尝试让 HttpComponents 发送 HttpRequest 并检索响应。在大多数 URL 上,这都可以正常工作,但是当我尝试获取 phpBB 论坛的 URL 即 http://www
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我是一名优秀的程序员,十分优秀!