[英]How to properly send HTTP response to Client in Java
我正在制作服务器以显示HTML页面作为大学评估。 所有文件都存储在本地。 使用Firefox连接到服务器(Chrome似乎阻止了图像)。
如果我在要传输的HTML文件本身中键入HTTP响应,则下面的代码可以正常工作(我在HTML文件开头输入“ HTTP / 1.1 200 OK”)
{
byte[] pageToBytes = Files.readAllBytes(webContent.toPath());
os.write(pageToBytes);
os.flush();
os.close();
}
但是,如果我尝试先发送HTTP响应,然后再发送HTML,则它拒绝将图像加载到HTML代码中指定的图像中。
这是我试图找出问题的代码:
{
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();
}
任何见解将不胜感激:)
您应该阅读有关HTTP请求的信息,当浏览器发出请求打开服务器和客户端之间的通信通道(即您正在写入的流)时,一旦客户端收到响应,该通道就会关闭。
在您的代码中,您只响应一次,但是第二次关闭流时,这就是响应主体永远不会到达客户端的原因。 此外,如果没有错误或代码另有说明,则服务器会自动发送200代码。
由于您正在尝试制作http服务器,因此在此处进行介绍很不错,它说明了如何处理http请求和响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.