0

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();
...
}...
4

1 に答える 1

0

いいよ気にしないで。私が探していたのは、HTTP Respone のヘッダーにあったことがわかりました。そのため、ヘッダーを調べて必要なものを取得しました。::フェイスパーム::

于 2013-01-23T21:14:33.423 に答える