11

私はこれをしました:

response = httpclient.execute(targetHost, httppost); 
    if(response.getStatusLine().getStatusCode() == 200)
                        {
    HttpEntity entity = response.getEntity();
    System.out.println("Entity:"+entity);
  if (entity != null) 
                            {
        String responseBody = EntityUtils.toString(entity);
        System.out.println("finalResult"+responseBody.toString());
                            }

それについてのことは、最初println()にこれが表示されることです:org.apache.http.conn.BasicManagedEntity@481e8150これは良いことです。

しかし、2番目System.out.println("finalResult"+responseBody.toString());はこれだけを表示しますfinalResult。それで、これの何が問題なのですか:

String responseBody = EntityUtils.toString(entity);
            System.out.println("finalResult"+responseBody.toString());

???

重要これHttpEntity entity = response.getEntity();は と同じorg.apache.http.conn.BasicManagedEntity@481e8150です。SO問題はここにあるはずです:

文字列 responseBody = EntityUtils.toString(entity);.

助けてください!!!

4

6 に答える 6

27

まず、サーバーが空白の応答を返していないかどうかを確認します。

response.getEntity().getContentLength();  //it should not be 0

次に、以下を試して応答を文字列に変換します。

StringBuilder sb = new StringBuilder();
try {
    BufferedReader reader = 
           new BufferedReader(new InputStreamReader(entity.getContent()), 65728);
    String line = null;

    while ((line = reader.readLine()) != null) {
        sb.append(line);
    }
}
catch (IOException e) { e.printStackTrace(); }
catch (Exception e) { e.printStackTrace(); }


System.out.println("finalResult " + sb.toString());
于 2012-05-21T11:18:00.457 に答える
9

これを使用できます:

String s = EntityUtils.toString(httpRes.getEntity());
于 2015-12-14T16:25:47.277 に答える
3
 org.apache.http.conn.BasicManagedEntity@f8a5dec

HttpEntity オブジェクトを直接出力すると、応答が返されます。例えば:

 HttpEntity httpEntity=httpResponse.getEntity();

サーバーから実際の応答を取得するには、次の手順を実行する必要があります。

 public String convertStreamtoString(InputStream is){

    String line="";
    String data="";
    try{
        BufferedReader br=new BufferedReader(new InputStreamReader(is));
        while((line=br.readLine())!=null){

            data+=line;
        }
    }
    catch(Exception e){
        e.printStackTrace();
    }
        return  data;
}

上記のメソッドを呼び出して、引数として httpEntity を渡すだけです。楽しみ!!

于 2015-09-01T07:53:01.220 に答える
1

これを試して:

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String body = "";
while ((body = rd.readLine()) != null) 
{
    Log.e("HttpResponse", body);
}
于 2012-05-21T11:15:28.890 に答える
0

これを試して

 BufferedReader in = new BufferedReader(new InputStreamReader(response
                        .getEntity().getContent()));

                //SB to make a string out of the inputstream
                StringBuffer sb = new StringBuffer("");
                String line = "";
                String NL = System.getProperty("line.separator");
                while ((line = in.readLine()) != null) {
                    sb.append(line + NL);
                }
                in.close();

                //the json string is stored here
            String  result = sb.toString();
于 2012-05-21T11:26:18.393 に答える