我正在使用 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);
结果字符串总是<?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>
最佳答案
如果您将 BasicResponseHandler
作为响应处理程序传递,则 execute
的结果应该是整个响应主体。
如果您只收到一行,我的理论是这就是服务器发送的所有内容。
查看服务器日志,看看在生成响应正文时是否抛出异常。 (例如,如果您使用 JSP 进行渲染,抛出的异常无法通过 HTTP 状态代码报告回客户端。相反,客户端将看到带有截断正文的 200 响应。)
关于java - HttpClient 只响应一行 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4942075/