【问题标题】:Android Sax Parser HttpClient vs Url what are the differencesAndroid Sax Parser HttpClient vs Url 有什么区别
【发布时间】:2014-11-07 16:46:39
【问题描述】:

大家好,我是 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()));

第二个有什么优势吗?两者哪个占用内存少?

【问题讨论】:

    标签: java android sax saxparser


    【解决方案1】:

    根据此链接 (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 团队希望您使用的方式。

    【讨论】:

      猜你喜欢
      • 2014-12-26
      • 2012-06-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2015-02-24
      • 2014-07-01
      相关资源
      最近更新 更多