2012-02-20 87 views
0

我正在向以XML格式返回數據的Web服務發送POST請求。當我通過瀏覽器調用Web服務時,我可以看到完整的XML文件。然而,當我從我的android應用程序(模擬器)調用Web服務時,我只能獲得部分XML數據?從Web服務獲取不完整的xml數據

發送的XML文件的大小約爲14500字節。我首先將響應存儲在一個字節數組中,其大小由我使用getContentLength()函數計算得出。此方法返回正確的響應大小。

但是,我的InputStreamReader讀取到字節數組的大約6350字節的實際數據。字節數組的其餘部分只包含零。

我試着在網上無處不在,但到目前爲止我還沒有遇到過解決方案。是的chunking是一種選擇,但由於我沒有訪問Web服務代碼,我無法實現該選項。

真的很感謝,如果有人能指導我這裏!

+0

你可以發佈我們一些代碼,重要的是要知道你是否使用HttpClient或URLConnection以及哪個版本的你正在瞄準的android API,因爲Android文檔承認pre-honeycomb前的URL連接代碼中存在錯誤。 – Elemental 2012-02-20 06:25:39

+0

@Elemental不幸的是我現在沒有訪問代碼....我會盡快分享。我正在使用HttpClient,我的目標是Android 2.2平臺。謝謝! – user1122549 2012-02-20 07:12:47

回答

1

我不明白爲什麼你需要使用InputStreamReader(如果你不小心的話可能表現得很差)讀取Web服務數據(在你的情況下它只有14.5kb左右)。只需使用HttpURLConnection,連接到你的ws,它會照顧你的連接和響應connection.getResponseMessage();

+0

感謝您的建議。我使用HttpURLConnection,但問題仍然存在。儘管srevice返回的字節數是16500,但BufferedReader.readLine()方法只能讀取多達6851個字節。你能提出什麼可能是錯誤的嗎? – user1122549 2012-02-24 18:56:35

+0

是的HttpUrlConnection選項爲我工作!謝謝Anh Tuan! – user1122549 2012-03-07 10:23:59