我正在使用 Apache Commons HttpClient 从服务器中获取一些数据。我的问题是返回的 XML 数据总是被截断为前 64k。我希望这可能只是对相关对象设置限制的情况,但显然不是 - 或者至少,我找不到有关这种方法的任何信息。我假设这是一个客户端问题,因为服务器属于另一家公司,并且可能会将数据很好地提供给其他所有人。
有任何想法吗?
顺便说一句,我的代码非常简单:
protected String send(Server server, String query) throws Exception {
PostMethod post = new PostMethod(server.getUrl());
post.setParameter("XMLString", query);
try {
client.executeMethod(post);
return post.getResponseBodyAsString();
} finally {
post.releaseConnection();
}
}
仅供参考,使用 InputStreams 而不是 getResponseBodyAsString() 方法的以下代码也会发生同样的事情。
protected String send(Server server, String query) throws Exception {
PostMethod post = new PostMethod(server.getUrl());
post.setParameter("XMLString", query);
try {
client.executeMethod(post);
InputStream stream = post.getResponseBodyAsStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String line = null;
StringBuilder sb = new StringBuilder();
while ( (line=reader.readLine()) != null ) {
sb.append(line);
}
return sb.toString();
} finally {
post.releaseConnection();
}
}
那么,您知道某处是否设置了限制吗?字符串响应总是64k 的事实似乎表明必须有。但是哪里?!
谢谢
阿拉斯泰尔