Android webservice GET请求仅回复XML响应的一部分

时间:2011-11-26 19:58:11

标签: android web-services http httpclient

我正在尝试连接到家里供暖的网络服务。将请求网址放入Chrome会生成完整的XML文件。 随后我尝试使用Android应用程序以相同的方式执行相同操作,但不幸的是只回复了一半的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线程没有中断,但没有成功。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

终于找到了我自己的解决方案!问题不是请求而是LogCat中的输出。分别记录每一行获得了所需的完整响应!