2010-11-18 10 views
6

Mogę otrzymać odpowiedź. Jak mogę uzyskać odpowiedź w dokumencie XML? czy muszę używać zewnętrznego parsera XML? Dzięki za wszelkie pomagaJak uzyskać odpowiedź jako dokument XML z 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"); 
} 

Odpowiedz

17

Dostałem odpowiedź, post tutaj dla ludzi ma to samo pytanie

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

Na Androidzie zaleca się używać XmlPullParser. Ma stosunkowo proste API w porównaniu do SAX i DOM i jest szybki i wymaga mniej pamięci niż interfejs API DOM. http://developer.android.com/training/basics/network-ops/xml.html – 2cupsOfTech

+0

Ostrzeżenie IDE DefaultHttpClient jest przestarzałe. Jaka jest alternatywa dla niego? HttpClient? –

+0

Menuka Ishan: alternatywą jest klient HttpClient = HttpClientBuilder.create(). Build(); – douglas

Powiązane problemy