HttpsURLConnection 호출을 사용하여 HTTP 서블릿에서 메시지 및 오류 코드와 함께 응답을받습니다. 내 코드에서 일부 코드는 다음과 같은 : - 측면의 HttpServlet에서HttpsURLConnection.getResponseCode() -1 대신 1001 또는 1002 또는 1003을 반환합니다.
connection = (HttpsURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
// Headers
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-type", "text/xml");
connection.setRequestProperty("Accept", "text/plain");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Authorization", authorization);
connection.connect();
, 난 상태 코드와 설명을 설정하고있다 : -
response.setStatus(code);
response.getWriter().write(returnDescription);
위의 모든 코드는 기존되는 코드와 그것을 제외하고 잘 작동합니다. 응답 코드로 상태 코드를 반환해야합니다. 그러나 거의 코드가 1001,1002 또는 1003처럼 작동하지 않습니다. 즉, response.setStatus (1001)를 설정하면 "java.io.IOException : Invalid Http response"가있는 클라이언트 측에서 responseCode()를 -1로 반환합니다. 1101,1102, 1232 등의 다른 정수 값의 경우 제대로 작동합니다. 코드를 디버그하고 서블릿이 올바른 값을 설정하고 있지만 클라이언트가 응답을 구문 분석 할 수 없음을 발견했습니다. 그리고 다른 숫자 값으로 상태 코드를 변경하면 제대로 작동하기 시작합니다! HTTPS뿐만 아니라 HTTP에서도 동일한 동작이 나타납니다. 이러한 비 작동 코드는 특정 목적을 가진 미리 정의 된 코드로 보이며 상태 코드로 사용할 수 없지만 웹에서 아무 것도 찾지 못했습니다. 누구도 같은 것을 경험했고 이유가 무엇인지 알았습니까?
미리 감사드립니다. :)
감사합니다. @BJ Black. 내 질문에 대한 답변입니다. 나는 더 많이 분석해야했다. –
나는 너무 많이 땀을 흘리지 않을 것이다. 나는 아주 오랫동안 자바 프로그래머로 일해 왔으며 이것은 결코 명백하지 않다. –