HttpURLConnection
クラスのインスタンスを使用して、HTTP POST リクエストをリモート サーバーに送信しようとしています。応答コードと応答メッセージを取得できますが、入力ストリームを に書き込もうとすると、StringBuffer
実際に行を読み取ることができません。
WireSharkから送信されたパケットを分析したところ、リモート サーバーから完全な応答が送信されていることがわかりました。Java プログラムでそれを確認できない理由についての私の唯一の推測は、InputStream から読み取ろうとする時間が遅すぎるためです。
では、オブジェクトを使用してリモート サーバーからの即時の完全な応答を読み取るにはどうすればよいでしょうか。HttpURLConnection
以下は私が使用しているコードです:
HttpURLConnection conn = null;
String urlStr = "...";
URL url = null;
try
{
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
...
BufferedReader rd = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null)
{
sb.append(line);
}
rd.close();
...
}...