- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要使用异步 Http 客户端 (https://github.com/sonatype/async-http-client ) 将字节数组发布到 URL。内容类型是八位字节流。
我如何使用异步 http 客户端来做到这一点。我应该使用 ByteArrayBodyGenerator 吗?有没有示例代码可以看看它是如何完成的?
如果字节数组已经在内存中,使用ByteArrayInputStream是不是更好并使用 RequestBuilder.setBody(InputStream)
最佳答案
文档中建议不要在 setBody
中使用 InputStream,因为为了获取内容长度,库需要将所有内容加载到内存中。
而且 ByteArrayBodyGenerator 似乎也有同样的问题。要获取内容长度,它使用对 bytes.length()
的调用,而 bytes
是您的字节数组(private final byte[] bytes;)。因此,要获取字节数组的长度,需要将该数组加载到内存中。
这是来自github的源代码: https://github.com/sonatype/async-http-client/blob/master/src/main/java/com/ning/http/client/generators/ByteArrayBodyGenerator.java
您可以编写自己的 BodyGenerator 实现来避免该问题。
您还要求提供使用 BodyGenerator 的示例:
final SimpleAsyncHttpClient client = new SimpleAsyncHttpClient.Builder()
.setRequestTimeoutInMs(Integer.MAX_VALUE)
.setUrl(url)
.build();
client.post(new ByteArrayBodyGenerator(YOUR_BYTE_ARRAY)).get();
如果您想使用遗留 API:
final AsyncHttpClientConfig config
= new AsyncHttpClientConfig.Builder().setRequestTimeoutInMs(Integer.MAX_VALUE).build();
final AsyncHttpClient client = new AsyncHttpClient(config);
client.preparePost(url)
.setBody(new ByteArrayBodyGenerator(YOUR_BYTE_ARRAY))
.execute()
.get();
关于java - 如何使用 java 异步 http 客户端 (ning) 库发布二进制字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9780007/
我正在使用 ning 异步 HTTP 客户端,它以以下 URL 格式向下游服务器发送请求: http://{下游服务器}:4080/object/id?query_parameters=a1,a2 注
我正在使用 ning异步 http 客户端实现非阻塞优点。做一个苹果 vs 苹果测试(非阻塞 vs 阻塞),我看到非阻塞版本正在提供更多请求样本,但是异步 http 客户端与其阻塞版本相比正在创建更多
本文整理了Java中com.ning.billing.util.config.catalog.XMLLoader类的一些代码示例,展示了XMLLoader类的具体用法。这些代码示例主要来源于Githu
我正在使用AsyncHttpClient (1.9.x 版本)通过代理发出请求: private AsyncHttpClientConfig cfg = new AsyncHttpClientCo
如何在 jquery/JS/css 中创建类似于 ning 主页 ( http://www.ning.com/ ) 的动画效果?我说的是文本“建立和培养你自己的追随者/粉丝/成员/客户等社区”的窗帘动
在我的代码中,有一个循环构建 Future,这很慢。仅构建 1 个 Future 就需要大约数百毫秒。我只是在谈论设置 Future 对象,而不是获取 Reponse。代码如下: while(sett
我需要使用异步 Http 客户端 (https://github.com/sonatype/async-http-client ) 将字节数组发布到 URL。内容类型是八位字节流。 我如何使用异步 h
本文整理了Java中com.ning.billing.util.config.catalog.XMLLoader.getObjectFromUri()方法的一些代码示例,展示了XMLLoader.ge
本文整理了Java中com.ning.billing.util.config.catalog.XMLLoader.getObjectFromString()方法的一些代码示例,展示了XMLLoader
本文整理了Java中com.ning.billing.util.config.catalog.XMLLoader.getObjectFromStream()方法的一些代码示例,展示了XMLLoader
我正在使用 Play Framework 2.3 和 WS API 下载和解析 HTML 页面。对于非英语页面(例如俄语、希伯来语),我经常会弄错编码。 这是一个例子: def test = Acti
任务失败,在java.lang.ArrayIndexOutOfBoundsException处显示com.ning.compress.lzf.impl.UnsafeChunkDecoder.copyO
我是一名优秀的程序员,十分优秀!