大家好,我是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()));
第二个有什么优势吗?两者中哪一个使用较少的内存?
答案 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团队希望您使用的方式。