2011-10-06 151 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