我目前正在创建一个小型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