ChunkedInput在球衣中不起作用

ChunkedInput在球衣中不起作用,第1张

ChunkedInput在球衣中不起作用

格式球衣文档:

用ChunkedOutput编写块很简单,您只需调用方法write()即可将一个块恰好写入输出。通过输入读数,它会稍微复杂一些。除非开发人员告知,否则ChunkedInput不知道如何区分字节流中的块。为了定义自定义的块边界,ChunkedInput提供了注册ChunkParser的可能性,该块从输入流中读取块并将它们分开。Jersey提供了几种块解析器实现,并且您可以根据需要实现自己的解析器来分离块。在上面的示例中,
使用Jersey 提供的默认解析器,该解析器 根据 r n分隔字符序列的存在来分隔块

因此,您的服务器必须使用 r n分隔多个块,或者您必须注册ChunkParser。

假设您有一个常量完成每个块,您可以尝试:

Client client = ClientBuilder.newClient();//2 is to increase amount of data and 3(seconds) is for time b/w chunked output  ,can be changed        final Response response = client.target("http://jerseyexample-ravikant.rhcloud.com/rest/jws/streaming/2/3").request()     .get();        final ChunkedInput<String> chunkedInput = response.readEntity(new GenericType<ChunkedInput<String>>() {        });        chunkedInput.setParser(ChunkedInput.createParser(BOUNDARY));        String chunk;        while ((chunk = chunkedInput.read()) != null) { System.err.println("Next chunk received: " ); System.out.println(chunk);        }

而BOUNDARY是每个块的终结字符串。您编辑中的in.readLine解决方案将按每个换行符分解“块”,即使一个块包含 n,也将被解释为2个块。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5498709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存