2011-10-06 152 views
0

我是一名经验丰富的Java程序员,但是是一名新手Web开发人员。我正在尝试使用JDK 1.6附带的HttpServer类来构建一个简单的Web服务。从我所看到的例子,从HttpHandlerhandle法一些典型的代码会是这个样子:用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 ),也许开始回传数据,然后遇到异常,这将需要发送“内部服务器错误”响应代码以及一些错误内容?换句话说,我应该采取什么行动,因为我已经在遇到异常时向客户发送了部分“成功”响应。

回答

1

直到您刷新流或关闭它才会发送200。 但是,一旦它被发送,你无能为力。
通常情况下,只有当您拥有非常大量的数据并且使用分块时才可能发生这种情况。

+0

谢谢。 TBH我将使用分块方法发送大量数据,所以我想这是我必须处理的事情,也许在我的数据集周围使用页眉和页脚以允许客户端检测错误情况。 – Adamski