我正在编写一个客户端来测量 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/