サーバーからデータを取得するためにApacheCommonsHttpClientを使用しています。私の問題は、返される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();
}
}
fyi、getResponseBodyAsString()メソッドではなくInputStreamsを使用する次のコードでも同じことが起こります。
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であるという事実は、存在しなければならないことを示唆しているようです。しかしここで?!
ありがとう
アラステア