2010-11-18 4 views
6

私は応答を受け取ることができます。どのようにしてXML文書で応答を得ることができますか?外部XMLパーサーを使用する必要がありますか?すべてのためのおかげで、私は私の答えを得たApache Httpclient APIを使用してXML文書としての応答を取得するには?

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

答えて

17

役立ちます、ここの人々のためのポストは、同じ質問のAndroid上で

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

XmlPullParserを使用することを推奨しています。 SAXとDOMに比べて比較的シンプルなAPIを持ち、速くてDOM APIより少ないメモリしか必要としません。 http://developer.android.com/training/basics/network-ops/xml.html – 2cupsOfTech

+0

IDEはDefaultHttpClientが推奨されていないことを警告します。それに代わるものは何ですか? HttpClient? –

+0

Menuka Ishan:代替はHttpClientクライアント= HttpClientBuilder.create()。build();です。 – douglas

関連する問題