2010-11-18 10 views
6

Ich kann die Antwort erhalten. Wie kann ich die Antwort in einem XML-Dokument erhalten? Muss ich einen externen XML-Parser verwenden? Vielen Dank für jede hilftWie bekomme ich eine Antwort als XML-Dokument mit 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"); 
} 

Antwort

17

ich meine Antwort bekam, Post hier für die Menschen haben die gleiche Frage

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

Auf Android wird empfohlen, die XmlPullParser zu verwenden. Es hat eine relativ einfache API im Vergleich zu SAX und DOM und ist schnell und benötigt weniger Speicher als die DOM API. http://developer.android.com/training/basics/network-ops/xml.html – 2cupsOfTech

+0

IDE warnt DefaultHttpClient ist veraltet. Was ist die Alternative dafür? HttpClient? –

+0

Menueka Ishan: Die Alternative ist HttpClient client = HttpClientBuilder.create(). Build(); – douglas