我正在尝试调用一个返回太多数据的Web服务,只是为了提取一小段数据。
因此,我决定不使用由Java生成的标准客户端。
我使用以下代码进行连接:
HttpURLConnection connection;
byte[] requestData = .....
URL url = new URL(wsUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "text/xml");
connection.setRequestProperty("Content-Length", String.valueOf(requestData.length));
connection.connect();
OutputStream connOs = connection.getOutputStream();
connOs.write(requestData);
connOs.close();
InputStream is = connection.getInputStream(); // <<< THIS IS THE MOST TIME CONSUMING, it takes about 70 ms
byte[] rply = stream2Bytes(is);
is.close();
connection.disconnect();
connection.getInputStream();
调用消耗的时间最多,大约需要70毫秒。
我正在尝试设置多个请求标头以缩短此时间但无法访问。
我理解HttpUrlConnection使用默认使用Connection=KEEP-ALIVE
标头的HTTP1.1协议,以便重用底层TCP连接。
答案 0 :(得分:0)
connection.getInputStream();
- 等待服务器响应的函数...你无法加速这个过程。