2010-11-18 12 views
6

Yanıtı ben alabiliyorum. Yanıtı bir XML belgesinde nasıl alabilirim? Harici bir XML ayrıştırıcısı kullanmam gerekiyor mu? Herhangi için teşekkürler cevabımı aldımApache Httpclient API ile XML belgesi nasıl yanıtlanır?

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

cevap

17

yardımcı olur, burada insanlar için yazılan aynı soruyu Android'te

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

o XmlPullParser kullanılması önerilir var. SAX ve DOM ile karşılaştırıldığında nispeten basit bir API'ye sahiptir ve hızlıdır ve daha az bellek gerektiren DOM API'sine ihtiyaç duyar. http://developer.android.com/training/basics/network-ops/xml.html – 2cupsOfTech

+0

IDE, DefaultHttpClient'in kullanımdan kaldırıldığını bildiriyor. Bunun alternatifi nedir? HttpClient? –

+0

Menuka Ishan: alternatif HttpClient client = HttpClientBuilder.create(). Build(); – douglas