2011-11-26 2 views
2

집에서 난방을 통해 제공되는 웹 서비스에 연결하려고합니다. 요청 URL을 Chrome에 넣으면 완전한 XML 파일이됩니다. 그 후에 안드로이드 응용 프로그램을 사용하여 프로그래밍 방식으로 동일한 작업을 수행하려고 시도했습니다. 안타깝게도 XML 파일의 절반 만 응답합니다. 비록, 그 시도가 다른 위치에 결과를 잘라 흥미롭게Android webservice GET 요청은 XML 응답의 일부만을 응답합니다.

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(); 
} 

안드로이드 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(); 
     } 

:

는 이미 다른 사람의 사이에, 간단한 HttpConnection에를 여러 번 시도 시도 그들은 약 5 문자 만 다릅니다. 이 위치에는 특수 문자가 없으며 XML이 매우 짧습니다.

아무쪼록? 또한 UI 스레드에 의해 인터럽트가 발생하지 않도록 ASyncTask에서 실행하려고했지만 성공하지는 못했습니다.

도움 주셔서 감사합니다.

+0

Java 데스크톱 응용 프로그램에서 동일한 코드를 실행하려고 했으므로 문제가 안드로이드와 관련되어야합니다! – user1033552

+0

나는 전체 응답이 아니라 응답의 몇 가지 요소 만 얻는 똑같은 문제에 직면하고있다. – Taruni

답변

0

마지막으로 해결책을 직접 찾았습니다! 문제는 요청이 아니라 LogCat의 출력이었습니다. 로깅 모든 라인을 별도로 원하는 전체 응답을 얻은!

+0

수정에 대한 축하! 할 수있을 때, 다른 사람들이 당신의 성공을 통해 배울 수 있도록 답을 받아 들여야합니다. 건배 ~ –