java - Jersey client.setChunkedEncodingSize(null) 不起作用

标签 java web-services rest jersey-1.0

我正在编写一个客户端来测量 Jersey、基于 REST 的 Web 服务性能。我编写了一些代码来测量响应时间并测量从服务器发送的字节数,但 response.getLength() 方法始终返回 -1

在许多 QA 论坛中,我读到设置 client.setChunkedEncodingSize(null) 会起作用,但即使在设置后,我也得到 -1。

从服务器端,我根据客户端发送的参数发送 XML 或 JSON 或 protobuf 类型的响应。对于所有这些响应类型,我得到的响应长度为 -1。

我的实际请求如下所示:

WebResource webResourceQuery = client.resource(requestUrl);
ClientResponse response = webResourceQuery.header("Authorization", header)
                                          .accept(MediaType.APPLICATION_JSON)
                                          .get(ClientResponse.class);

从服务器端,我没有明确设置内容长度。谁能帮我获得客户端的内容长度?

此实验的全部目的是衡量哪种响应类型在响应时间和发送/接收的数据量方面更有效。

最佳答案

我遇到了同样的问题:client.setChunkedEncodingSize(null); 不起作用。

这对我来说实际上禁用了分块编码:

client.getProperties().put(ApacheHttpClient4Config.PROPERTY_ENABLE_BUFFERING, true);

关于java - Jersey client.setChunkedEncodingSize(null) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25240253/

相关文章:

java - JTable 输入关键操作

java - 当我添加新服务时,我所有的 Restful Web 服务都停止工作

java - 在 EJB3 WebService 中将 Hashmap 作为参数传递

android - 使用来自 Android 应用程序的自签名证书访问在服务器上运行的 REST API

java - log4j jsp导入

java - Apache Thrift java 最低要求

java - Ehcache 与静态 map 缓存实现

node.js - 使用 Node.JS 创建 REST Web 服务

rest - 什么是 REST API 入口点,它与端点有何不同?

java - 使用 Spring (Java) 的数据模型和 REST Controller 的 Multi-Tenancy 权限模型