我正在使服务器显示HTML页面作为大学评估。所有文件都存储在本地。使用Firefox连接到服务器(chrome似乎阻止图像)。
如果我在传输的HTML文件中输入HTTP响应,那么下面的代码就可以正常工作(我正在输入' HTTP / 1.1 200 OK'在HTML文件的开头)
{
byte[] pageToBytes = Files.readAllBytes(webContent.toPath());
os.write(pageToBytes);
os.flush();
os.close();
}
但是,如果我首先尝试发送HTTP响应,然后是HTML,它拒绝加载我的HTML代码中指定的图像。
以下是Code i试图解决问题:
{
byte[] pageToBytes = Files.readAllBytes(webContent.toPath());
String HttpOK = "HTTP/1.1 200 OK\n\r";
os.write(HttpOK.getBytes());
os.write(pageToBytes);
os.flush();
os.close();
}
非常感谢任何见解:)
答案 0 :(得分:0)
当浏览器发出请求打开服务器和客户端之间的通信通道(您正在写入的流)时,您应该阅读有关HTTP请求的信息,一旦客户端收到响应,此通道就会关闭。
在您的代码中,您只响应一次,但第二次流已经关闭,这就是响应主体永远不会到达客户端的原因。此外,当没有错误或代码另有说明时,服务器会自动发送200代码。
答案 1 :(得分:0)
由于您正在尝试制作http服务器,因此最好查看here 它解释了如何处理http请求&响应。