我正在使用HttpClient来获取XML文件,我有问题得到整个文档返回(它只返回XML文件的一行)。 所以:
DefaultHttpClient c = new DefaultHttpClient(); BasicResponseHandler r = new BasicResponseHandler(); String s = null; try { s = c.execute(new HttpGet("http://localhost/activity.xml"),r); } catch (Exception e) { e.printstacktrace(); } Log.i(TAG,s);
结果string总是<?xml version="1.0" encoding="UTF-8"?>
有什么我需要做的告诉HttpClient加载整个文件或处理换行或东西? XML非常简单:
<?xml version="1.0" encoding="UTF-8"?> <project> <group-id type="integer">2187</group-id> <icon type="integer">2</icon> <name>Android</name> <overview>android app</overview> <permalink>codebase</permalink> <start-page>tickets</start-page> <status>active</status> </project>
Android和内核模块
Android Studio可以使用OpenJDK,还是需要Linux上的Oracle JDK?
为什么Android模拟器报告“未知的虚拟设备”,当设备在我的用户目录?
你如何编译一个C ++控制台程序作为一个Android进程运行?
Android模拟器在Ubuntu 11.10上崩溃
eclipse文件浏览器拉一个文件,无法在windows中打开文件“正在使用的文件”
如何通过WiFi设置PC和Android设备之间的连接
Android ARP清除时间
从API23中删除Apache HTTP Client,会对Volley产生什么影响?
如果您将BasicResponseHandler作为响应处理程序传递,则execute的结果应该是整个响应主体。
如果你只有一条线,我的理论是,这就是服务器发送的全部内容。
查看服务器日志,查看是否正在生成响应主体时抛出异常。 (例如,如果使用JSP来执行渲染,则抛出的异常不能通过HTTP状态代码报告给客户端,而是客户端将看到一个截断主体的200响应。)
试试这个。
HttpResponse response = client.execute(request); in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); StringBuffer sb = new StringBuffer(""); String line = ""; String NL = System.getProperty("line.separator"); while((line = in.readLine()) != null){ sb.append(line + NL); } in.close(); String page = sb.toString(); Log.d("Join",page);
如果你想获得XML数据,你最好扩展DefaultHandler。 并使用像SAXParser,XMLReader这样的解析器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。