2010-11-18 45 views
6

Je peux recevoir la réponse. Comment puis-je obtenir la réponse dans un document XML? dois-je utiliser un analyseur XML externe? Merci pour toute aideComment obtenir une réponse en tant que document XML avec 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"); 
} 

Répondre

17

J'ai eu ma réponse, post ici pour les personnes ont la même question

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

Sur Android, il est recommandé d'utiliser le XmlPullParser. Il a une API relativement simple par rapport à SAX et DOM et est rapide et nécessite moins de mémoire que l'API DOM. http://developer.android.com/training/basics/network-ops/xml.html – 2cupsOfTech

+0

IDE met en garde DefaultHttpClient est obsolète. Quelle est l'alternative pour cela? HttpClient? –

+0

Menuka Ishan: l'alternative est HttpClient client = HttpClientBuilder.create(). Build(); – douglas