2012-05-21 4 views
9

Ich habe dies getan [email protected] was gut ist.immer die Antwort Körper von Httpresponse

Aber die zweite System.out.println("finalResult"+responseBody.toString()); zeigt nur diese finalResult. Also, was ist falsch daran:

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

???

WICHTIG Diese HttpEntity entity = response.getEntity(); entspricht [email protected]. SO muss hier das Problem sein:

String Response = EntityUtils.toString (entity) ;.

Bitte helfen Sie !!!

Antwort

24

Zuerst sehen, wenn Ihr Server nicht leer Antwort zurückkehr:

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

Zweitens versuchen die folgende Antwort in Zeichenfolge zu konvertieren:

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

es zeigt nur finalResult. Ich weiß nicht warum !!! – adrian

+0

dann bedeutet es, es gibt keine Daten von Ihrem Webservice zurückgegeben – waqaslam

+0

aber wenn ich Anzeige HttpEntity entity = response.getEntity(); \t \t \t \t \t \t System.out.println ("finalResult" + Einheit); Es zeigt [email protected] Dies bedeutet, dass die Antwort von webservice nicht null ist, oder? – adrian

1

Try this:

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
String body = ""; 
while ((body = rd.readLine()) != null) 
{ 
    Log.e("HttpResponse", body); 
} 
+1

rd [email protected] ist. aber body = rd.readLine(); ist Null! – adrian

0

versuchen diese

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

Try this:

HttpEntity entity = response.getEntity(); 
final String content; 
    try 
    { 
     content = EntityUtils.toString(entity); 

     runOnUiThread(new Runnable() 
     { 

      @Override 
      public void run() 
      { 

       webView.loadData(content, "text/html", "UTF-8"); 

      } 
     }); 
    } 
3
[email protected] 

Antwort kommen, wenn wir direkt HttpEntity Objekt drucken. zB:

HttpEntity httpEntity=httpResponse.getEntity(); 

nun die eigentliche Antwort vom Server für das Erhalten benötigen wir folgende Schritte tun:

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; 
} 

knapp über Methode aufrufen und httpEntity als Argument übergeben. Genießen!!

5

können Sie dieses verwenden:

String s = EntityUtils.toString(httpRes.getEntity()); 
Verwandte Themen