GET 메서드를 사용하여 HttpURLConnection
을 사용하고 InputStream을 통해 응답을 검색하는 REST API를 여러 번 호출하려고합니다.여러 개의 HttpURLConnection 호출이 발생 함 InputStream을 사용하여 파일 끝 조기 끝내기
그것은 3 개월 이전에 잘 작동하지만, 지금은 예외 아래 던지고 :
SAXException를가 getArtifactsUrl 방법 : org.xml.sax.SAXParseException 동안 발생했습니다; 파일 조기 종료. (알 수없는 소스) [xercesImpl.jar : 6.1.0.Final] org.apache.xerces.parsers.DOMParser.parse에서 6.1.0.Final] javax.xml.parsers.DocumentBuilder.parse (DocumentBuilder.java:121)에서 [: 1.7.0_03]
다음
내가 만들고있어 코드의 라인 응답을 구문 분석 할 두 번째 호출 :
request = (HttpURLConnection) endpointUrl.openConnection();
inputstream = request.getInputStream();
doc = dBuilder.parse(inputstream);
첫 번째 호출은 요청 및 입력 스트림 개체를 사용하여 정상적으로 작동하지만 두 번째 호출은 fa입니다. iling. 나는 구글에있는 모든 가능한 대답하지만 행운을 시도 : 를 호출 할 때마다 후 :
inputstream.close();
request.disconnect();
는 요청이 HttpURLConnection의 개체입니다 기억하십시오.
나는 이것이 고등부 생산 문제이기 때문에 이것을 해결할 수 있다면 정말 감사드립니다!
죄송합니다. 나는이 문제가 우리의 두 번째 서비스 호출에서 302의 응답 코드와 함께 있다는 것을 알아 냈다.따라서 다른 파트너와 확인하고 코드에서 적절하게 처리해야합니다. 그러나이 답변을 주셔서 감사 드리며 HttpURLConnection을 사용하여 RESTful 서비스를 호출하려고 할 때 위와 동일한 방법을 권장합니다. – user3242315
'HttpURLConnection.setInstanceFollowRedirects (true) '를 호출하면 수동으로 처리 할 필요가 없습니다. 그러나 이것은 프로토콜 (http -> https 또는 vv.)의 전환이없고 GET 요청을 사용할 때만 작동합니다. 안드로이드에서 BTW는 버전에 달려 있습니다. – hgoebl
우리의 경우에는 프로토콜의 전환 (http -> https)이므로 코드에서 적절히 처리해야합니다. – user3242315