2010-11-18 7 views
6

Puedo recibir la respuesta. ¿Cómo puedo obtener la respuesta en un documento XML? ¿Necesito usar un analizador XML externo? Gracias por cualquier ayuda¿Cómo obtener respuesta como documento XML con 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"); 
} 

Respuesta

17

Tengo mi respuesta, puesto aquí para que la gente tiene la misma pregunta

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

En Android se recomienda utilizar el XmlPullParser. Tiene una API relativamente simple en comparación con SAX y DOM, es rápida y requiere menos memoria que la DOM API. http://developer.android.com/training/basics/network-ops/xml.html – 2cupsOfTech

+0

IDE advierte DefaultHttpClient está en desuso. ¿Cuál es la alternativa para eso? HttpClient? –

+0

Menuka Ishan: la alternativa es HttpClient client = HttpClientBuilder.create(). Build(); – douglas

Cuestiones relacionadas