我正在编写一个客户端来测量基于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);
从服务器端,我没有明确设置内容长度。任何人都可以帮助我在客户端获取内容长度吗?
本实验的全部目的是衡量哪种响应类型在响应时间和发送/接收的数据量方面更有效。
答案 0 :(得分:0)
我遇到了同样的问题:client.setChunkedEncodingSize(null);
无效。
这对我来说实际上禁用了分块编码:
client.getProperties().put(ApacheHttpClient4Config.PROPERTY_ENABLE_BUFFERING, true);