2012-02-20 4 views
0

XML 형식의 데이터를 반환하는 웹 서비스에 POST 요청을 보냅니다. 브라우저를 통해 웹 서비스를 호출하면 전체 XML 파일을 볼 수 있습니다. 그러나, 내 안드로이드 애플 리케이션 (에뮬레이터)에서 웹 서비스를 호출하면 부분적인 XML 데이터 만 가져올 수 있습니까?웹 서비스에서 불완전한 XML 데이터 가져 오기

전송되는 XML 파일의 크기는 약 14500 바이트입니다. 먼저 크기 배열이 getContentLength() 함수를 사용하여 계산 된 바이트 배열로 응답을 저장합니다. 이 메서드는 올바른 응답 크기를 반환합니다.

그러나 내 InputStreamReader은 약 6350 바이트의 실제 데이터를 바이트 배열로 읽습니다. 바이트 배열의 나머지 부분은 단순히 0을 포함합니다.

나는 모든 곳을 온라인으로 보려고했지만 지금까지는 해결책을 찾지 못했습니다. 예 청킹은 하나의 옵션이지만 웹 서비스 코드에 액세스 할 수 없기 때문에이 옵션을 구현할 수 없습니다.

누군가 나를 안내 할 수 있다면 정말 고맙습니다!

+0

HttpClient 또는 URLConnection을 사용하는 경우 중요한 코드를 게시 해 주실 수 있습니까? Android docs로 타겟팅하는 Android API는 URL 연결 코드 pre-honeycomb의 버그를 인정합니다. – Elemental

+0

@ Elemental 불행히도 나는 지금 당장 코드에 접근 할 수 없다. 나는 그것을 곧 공유 할 것이다. 나는 HttpClient를 사용하고 있으며 Android 2.2 플랫폼을 타겟팅하고 있습니다. 감사! – user1122549

답변

1

왜 당신이 웹 서비스 데이터를 읽는 (당신이 조심하지 않으면 매우 잘못 행동 할 수있는) InputStreamReader를 사용해야하는지 이해하지 못합니다 (단지 14.5kb 정도입니다). 그냥 HttpURLConnection을 사용하여 ws에 연결하면 연결 및 응답에 대해서도주의를 기울일 것입니다. connection.getResponseMessage();

+0

제안에 감사드립니다. HttpURLConnection을 사용했지만 여전히 문제가 지속됩니다. srevice에 의해 반환 된 바이트 수는 약 16500이지만 BufferedReader.readLine() 메서드는 최대 6851 바이트까지만 읽습니다. 다른 무엇이 여기에 있을지도 모른다 당신은 건의 할 수 있냐? – user1122549

+0

예 HttpUrlConnection 옵션이 저에게 효과적이었습니다! Anh Tuan에게 감사합니다 !! – user1122549

관련 문제