2012-05-21 18 views
9

की प्रतिक्रिया शरीर मैंने यह किया है:हो रही HttpResponse

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() दर्शाता है कि यह: [email protected] जो अच्छा है।

लेकिन दूसरा System.out.println("finalResult"+responseBody.toString()); केवल यह finalResult प्रदर्शित करता है। तो इसमें क्या गलत है:

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

???

महत्वपूर्ण यह HttpEntity entity = response.getEntity();[email protected] के बराबर है। तो समस्या यहां होना चाहिए:

स्ट्रिंग प्रतिक्रियाबडी = EntityUtils.toString (इकाई) ;.

कृपया मदद करें !!!

उत्तर

24

सबसे पहले, यदि आपके सर्वर खाली प्रतिक्रिया नहीं लौटा रहा है देखें:

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

यह केवल अंतिम परिणाम प्रदर्शित करता है। मुझे नहीं पता क्यों !!! – adrian

+0

तो इसका मतलब है कि आपके webservice – waqaslam

+0

से कोई डेटा वापस नहीं आया है, लेकिन जब मैं HttpEntity इकाई = response.getEntity() प्रदर्शित करता हूं; \t \t \t \t \t \t System.out.println ("finalResult" + इकाई); यह [email protected] दिखाता है। इसका मतलब है कि webservice से प्रतिक्रिया शून्य नहीं है, है ना? – adrian

1

इस प्रयास करें:

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

वां [email protected] है। लेकिन शरीर = rd.readLine(); शून्य है! – adrian

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

इस प्रयास करें:

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] 

प्रतिक्रिया आते हैं जब हम सीधे वस्तु 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 गुजरती हैं। का आनंद लें!!

5

आप इस एक का उपयोग कर सकते हैं:

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