2012-01-10 20 views
0

小さなデータを抽出するためにあまりにも多くのデータを返すWebサービスを呼び出そうとしています。HttpURLConnectionを使用してWebServiceを呼び出すときのパフォーマンスチューニング

私はJavaで生成された標準のClientを使用しないことにしました。ほとんどの時間は、それは70msで約取るconnection.getInputStream();への呼び出しで消費される

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(); 

私は、接続を行うには、次のコードを使用します。

私はこの時間を短縮するために多くのリクエストヘッダーを設定しようとしていますが、届きません。

HttpUrlConnectionはデフォルトでConnection=KEEP-ALIVEヘッダーを使用するHTTP1.1プロトコルを使用しているため、基になるTCP接続が再利用されることを理解します。

答えて

0

connection.getInputStream(); - サーバーの応答を待つ機能。この処理を高速化することはできません。

関連する問題