使用原始套接字发送HTTP响应,客户端不接收消息

时间:2013-03-26 10:09:48

标签: java

我正在尝试将此消息实体主体发送给客户端。但是,这条消息似乎没有传播。有什么可能的原因导致这种情况?字符串消息

String message = "HTTP/1.0 404 Not Found\r\n" +
                  "Server: " + 
                 "Content-type: html" +
                 "error\r\n" +
                 "<HTML>" +
                 "<HEAD><TITLE>404</TITLE></HEAD>" +
                 "<BODY>404 Not Found" +
                 "<br> nothing </BODY></HTML>" ;

然后,我使用PrintStream instace发送消息,其参数为message.getBytes()

浏览器上没有显示html消息。

  PrintStream sender = new PrintStream(this.socket.getOutputStream());

  String message = // above lines

  sender.write(message.getBytes())

1 个答案:

答案 0 :(得分:1)

假设您通过原始套接字发送此数据,则需要修复以下内容:

  • 每个标题后需要一个CRLF(回车,换行)。
  • 标题字段中不应包含“:”字符。
  • Content-type应为Content-Type,并且没有名为error的标准标题(除非您发送自定义标题,将其删除)。
  • html不是有效的内容类型,请尝试text/html