我試圖連接到由我在家供暖的web服務。將請求URL放入Chrome會生成一個完整的XML文件。 隨後,我試圖用Android應用程序編程,但不幸只回復了一半的XML文件。Android webservice GET請求僅回覆XML響應的一部分
我已經嘗試過多次嘗試,除其他簡單的HttpConnection:
private void androidHttpConnect() {
HttpURLConnection urlConnection=null;
try {
URL url = new URL("http://10.0.0.140:8080/user/menu");
urlConnection = (HttpURLConnection) url.openConnection();
BufferedInputStream in = new BufferedInputStream(
urlConnection.getInputStream());
Log.i("myapp",convertStreamToString(in));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
urlConnection.disconnect();
}
}
private String convertStreamToString(InputStream is) {
return new Scanner(is).useDelimiter("\\A").next();
}
和Android HTTP客戶端...
HttpClient httpclient = AndroidHttpClient.newInstance("Android");
HttpGet httpget = new HttpGet("http://10.0.0.140:8080/user/menu");
HttpResponse response;
try {
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
long len = entity.getContentLength();
Log.d("myapp", "content length "+len);
if (len != -1) {
try {
Log.d("myapp", EntityUtils.toString(entity));
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
// Stream content out
}
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
有趣的是那些試圖削減對不同位置的結果,即使它們只有大約5個字符不同。在這個位置上沒有特殊的字符,XML非常短。
任何任何想法?我也嘗試在ASyncTask中運行它,以確保UI線程沒有中斷,但沒有成功。
感謝您的幫助。
我試圖在java桌面應用程序中運行相同的代碼,它工作正常,所以問題必須與Android相關聯! – user1033552
我也面臨同樣的問題,得到的迴應不是整個迴應的幾個元素 – Taruni