-1

サーバーにデータを投稿するために、http クライアント用の Apache クライアント ライブラリを使用しています。

以下はコードです。ステータスラインの応答は得られますが、内容が得られません。しかし、wireshark では、サーバーがコンテンツ タイプ、場所などのコンテンツをほとんど返さずに応答していることがわかりました。私のコードでは、次の出力が得られます。

Status :: HTTP/1.1 201 Created Content null

コンテンツの読み取りに失敗した場所を見つけるのを手伝ってください。プロキシ関連の設定が必要ですか?

HttpClient client = new DefaultHttpClient();
String line = "";      String status = "";
HttpPost post = new HttpPost("http://127.0.0.1/msg");
try {

  HttpEntity e = new StringEntity("POSTING TO SERVER FOR TESTING");
  post.setEntity(e);


  HttpResponse response = client.execute(post);
  BufferedReader rd = new BufferedReader(new
  InputStreamReader(response.getEntity().getContent()));
  status = response.getStatusLine().toString() ;
  while ((line = rd.readLine()) != null) {
    System.out.println(line);
  }

} catch (IOException e) {
  e.printStackTrace();
}

System.out.println(" Status :: "+ status + " Content " + line);
4

1 に答える 1

2

の理由Status :: HTTP/1.1 201 Created Content nullは、最後に割り当てられた値linenull(ループから抜け出した方法です) であるためです。応答にコンテンツがない場合があります。API を使用して、必要に応じてヘッダーを調べることができます

ヘッダーを取得する方法をご覧ください。(java、httpclient 4.X)の例

于 2013-11-08T07:06:01.337 に答える