2011-11-26 62 views
2

我試圖連接到由我在家供暖的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線程沒有中斷,但沒有成功。

感謝您的幫助。

+0

我試圖在java桌面應用程序中運行相同的代碼,它工作正常,所以問題必須與Android相關聯! – user1033552

+0

我也面臨同樣的問題,得到的迴應不是整個迴應的幾個元素 – Taruni

回答

0

終於找到了我自己的解決方案!問題不是請求,而是LogCat中的輸出。記錄每一行分別獲得所需的完整響應!

+0

祝賀修復!如果可以,請確保接受您的答案,以便其他人可以從您的成功中學習。乾杯〜 –