2011-10-06 2 views
0

저는 숙련 된 Java 프로그래머이지만 초보자 웹 개발자입니다. JDK 1.6과 함께 제공되는 HttpServer 클래스를 사용하여 간단한 웹 서비스를 작성하려고합니다.com.sun.net.httpserver.HttpServer와의 오류 응답 보내기

Headers responseHeaders = exchange.getResponseHeaders(); 
responseHeaders.set("Content-Type", "text/plain"); 
exchange.sendResponseHeaders(200, 0); 

OutputStream responseBody = exchange.getResponseBody(); 
responseBody.write(createMyResponseAsBytes()); 
responseBody.close(); 

내 질문 : 내가 성공을 표시하는 응답 헤더를 전송하면 어떻게됩니까 (즉, 응답 코드 (200) 내가 열어 본 예에서, HttpHandlerhandle 방법에서 전형적인 코드는 다음과 같을 것) 아마도 데이터를 다시 스트리밍하기 시작하고 예외가 발생하기 때문에 일부 오류 내용과 함께 "내부 서버 오류"응답 코드를 전송해야합니다. 다시 말해, 예외가 발생하는 지점에서 클라이언트에게 부분적으로 "성공"응답을 이미 보냈다면 어떤 조치를 취해야합니까?

답변

1

200은 스트림을 플러시하거나 닫을 때까지 전송되지 않습니다. 하지만 전송되면 아무 것도 할 수 없습니다.
보통 대용량 데이터가 있고 청크를 사용할 때만 발생할 수 있습니다.

+0

감사합니다. TBH 청크 방식을 사용하여 많은 양의 데이터를 보낼 것이므로 클라이언트가 오류 상태를 감지 할 수 있도록 내 데이터 세트 주변의 머리글과 바닥 글을 사용하여 처리해야 할 것으로 생각됩니다. – Adamski

관련 문제