2012-02-20 8 views
0

XML形式でデータを返すWebサービスにPOSTリクエストを送信しています。私がブラウザを介してWebサービスを呼び出すと、完全なXMLファイルが表示されます。しかし、私はアンドロイドのアプリ(エミュレータで)からWebサービスを呼び出すと、部分的なXMLデータしか取得できません。Webサービスから不完全なxmlデータを取得する

送信されるXMLファイルのサイズは約14500バイトです。私はまず、応答をバイト配列に格納します。そのサイズは、getContentLength()関数を使って計算されます。このメソッドは、応答の正しいサイズを返します。

しかし、私のInputStreamReaderは、約6350バイトの実際のデータをバイト配列に読み込みます。バイト配列の残りの部分には、単にゼロが含まれます。

私はどこでもオンラインで見てみましたが、これまでのところ私は解決策を見つけていません。はいチャンクは1つのオプションですが、Webサービスコードにアクセスできないため、そのオプションを実装できません。

本当にありがとうございました!

+0

HttpClientまたはURLConnectionを使用しているかどうかを知るために重要なコードを投稿してください。アンドロイドのAPIとしてターゲットとしているアンドロイドAPIは、URL接続コードpre-honeycombのバグを認識します。 – Elemental

+0

@ Elemental残念ながら、私は今すぐコードにアクセスできません....私はすぐにそれを共有します。私はHttpClientを使用しています。私はAndroid 2.2プラットフォームをターゲットにしています。ありがとう! – user1122549

答えて

1

Webサービスデータを読み込むためにInputStreamReaderを使用する必要があるのは分かりません(ごくわずか14.5kbです)。ちょうどHttpURLConnectionを使用してwsに接続すれば、接続と応答についても気になります。connection.getResponseMessage();

+0

提案に感謝します。私はHttpURLConnectionを使用しましたが、それでも問題は解決しません。 sreviceによって返されるバイト数は約16500ですが、BufferedReader.readLine()メソッドは6851バイトまでしか読み込みません。ここで他に何が間違っているかも示唆できますか? – user1122549

+0

はい、私のためにHttpUrlConnectionオプションが機能しました!ありがとうAnh Tuan !! – user1122549

関連する問題