我目前正在創建一個小型web服務器(用於測試目的),並且在閱讀HTTP請求標頭(來自瀏覽器,我的情況爲鉻)時出現問題。閱讀完整的HTTP請求標題
首先,我只是嘗試了這樣的事情:
BufferedReader in = new BufferedReader(
new InputStreamReader(client_socket.getInputStream(), "UTF-8")
);
StringBuilder builder = new StringBuilder();
while (in.ready()){
builder.append(in.readLine());
}
return builder.toString();
這第一個請求的罰款。但是,第一個請求完成後,ready()
-方法僅返回false
(我關閉了以及所有讀者/作者)。
一點點搜索我碰到這個問題,年長後跌跌撞撞:Read/convert an InputStream to a String
我嘗試的第一個四種解決方案(兩次與Apache的風景,一個與Scanner
和一個用do-while循環)。他們都被永遠封鎖,瀏覽器給了我一個「網站無法訪問」 - 錯誤。
我想自己做這件事(不使用任何圖書館或嵌入式服務器),這就是爲什麼我甚至嘗試。
我現在有點迷路了,你會怎麼做呢?
雖然你給的代碼剪斷不會編譯('String'開始大寫),固定版本的工作正常。我也會檢查引用的RFC,謝謝你。 – 2012-01-13 21:52:56