2010-11-18 12 views
6

Tôi có thể nhận được phản hồi. Làm thế nào tôi có thể nhận được phản hồi trong một tài liệu XML? sao tôi cần sử dụng một trình phân tích cú pháp XML bên ngoài? nhờ cho bất kỳ giúpCách nhận phản hồi dưới dạng Tài liệu XML với Apache Httpclient api?

DefaultHttpClient client = new DefaultHttpClient(); 
String getUrl = "http://myurl.com"; 

HttpUriRequest getRequest = new HttpGet(getUrl); 

getRequest.setHeader("User-Agent", "xxxx"); 

HttpResponse response = client.execute(getRequest); 
int statusCode = response.getStatusLine().getStatusCode(); 

log.info("statusCode=" + statusCode); 

if (statusCode == 200){ 
    HttpEntity entity = response.getEntity(); 
    String content = EntityUtils.toString(entity); 
    log.info("\n" + content); 
}else { 
    log.warn("failed to response"); 
} 

Trả lời

17

tôi có câu trả lời của tôi, bài vào đây để mọi người có cùng một câu hỏi

DefaultHttpClient client = new DefaultHttpClient(); 
String getUrl = "http://myurl.com"; 

HttpUriRequest getRequest = new HttpGet(getUrl); 

getRequest.setHeader("User-Agent", "xxxx"); 

HttpResponse response = client.execute(getRequest); 
int statusCode = response.getStatusLine().getStatusCode(); 

log.info("statusCode=" + statusCode); 

Document doc = null; 
     if (statusCode == 200){ 
      HttpEntity entity = response.getEntity(); 
      //String content = EntityUtils.toString(entity); 

      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
      try { 
       DocumentBuilder builder = factory.newDocumentBuilder(); 
       doc = builder.parse(entity.getContent()); 
      } catch (ParserConfigurationException e) {    
       e.printStackTrace(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (SAXException e) { 
       e.printStackTrace(); 
      }       
     } 
+0

Trên Android nó được khuyến khích sử dụng XmlPullParser. Nó có một API tương đối đơn giản so với SAX và DOM và nhanh và đòi hỏi ít bộ nhớ hơn là API DOM. http://developer.android.com/training/basics/network-ops/xml.html – 2cupsOfTech

+0

IDE cảnh báo DefaultHttpClient không được dùng nữa. Lựa chọn thay thế cho nó là gì? HttpClient? –

+0

Menuka Ishan: thay thế là HttpClient client = HttpClientBuilder.create(). Build(); – douglas