Android Sax Parser与HttpClient vs Url有什么区别

时间:2014-11-07 16:46:40

标签: java android sax saxparser

大家好,我是Android开发中的新手,

我想知道以这种方式将流传递给解析器之间是否有任何区别

   SAXParserFactory saxPF = SAXParserFactory.newInstance();
   SAXParser saxP = saxPF.newSAXParser();
   XMLReader xmlR = saxP.getXMLReader();
   URL url = new URL("http://www.xmlfiles.com/examples/cd_catalog.xml"); // URL
   XMLHandler myXMLHandler = new XMLHandler();
   xmlR.setContentHandler(myXMLHandler);
   xmlR.parse(new InputSource(url.openStream()));

或以这种方式

   HttpClient httpclient = new DefaultHttpClient();
   HttpGet httpget = new HttpGet("http://www.xmlfiles.com/examples/cd_catalog.xml"); 
   HttpResponse response = httpclient.execute(httpget);
   HttpEntity entity = response.getEntity();
   SAXParserFactory saxPF = SAXParserFactory.newInstance();
   SAXParser saxP = saxPF.newSAXParser();
   XMLReader xmlR = saxP.getXMLReader();
   XMLHandler myXMLHandler = new XMLHandler();
   xmlR.setContentHandler(myXMLHandler);
   xmlR.parse(new InputSource(entity.getContent()));

第二个有什么优势吗?两者中哪一个使用较少的内存?

1 个答案:

答案 0 :(得分:0)

根据此链接(http://android-developers.blogspot.com/2011/09/androids-http-clients.html),Android开发团队更喜欢在执行http / https操作时使用Java SE http / https选项,而不是使用Apache HttpClient库。这样做的原因是Apache HttpClient库功能丰富,因此比java.net包更重。但是Java SE的后续版本包含仍然轻量且高效的http / https功能。

除此之外,个人而言,我认为Android开发人员更愿意放弃Apache库,因为Apache不断增加增量并不断弃用可能会给开发团队带来额外开销的功能。

要回答您的问题,第一个选项将是Android团队希望您使用的方式。