2017-01-14 107 views
0

我正在制作一个服务器来显示一个HTML页面作为大学评估。所有文件都存储在本地。使用Firefox连接到服务器(铬似乎阻止图像)。如何在Java中正确发送HTTP响应到客户端

如果我输入的是真实传送HTML文件本身就是一个HTTP响应下面的代码工作正常(我打字“HTTP/1.1 200 OK”在HTML文件开头)

   { 

        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();     

       } 

任何见解将不胜感激:)

回答

0

你应该阅读有关HTTP请求,当浏览器发出请求开放服务器和客户端之间的通信通道,即您正在写入的流,客户端收到响应后,此通道关闭。

在你的代码中,你正在响应一次,但第二次流已经关闭,这就是响应正文永远不会到达客户端的原因。当没有错误或代码另有说明时,服务器也会自动发送200代码。

0

既然你正在尝试制作一个http服务器,那么看看here 就很好了,它解释了如何处理http请求&响应。

相关问题