Jersey client.setChunkedEncodingSize(null)不起作用

时间:2014-08-11 09:41:29

标签: java web-services rest jersey-1.0

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

在许多质量保证论坛中,我读到设置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);

从服务器端,我没有明确设置内容长度。任何人都可以帮助我在客户端获取内容长度吗?

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

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题:client.setChunkedEncodingSize(null);无效。

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

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