我正在尝试将此消息实体正文发送给客户端。但是,这条消息似乎并没有传达出去。造成这种情况的可能原因是什么?字符串消息
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())
最佳答案
假设您通过原始套接字发送此数据,您需要修复以下问题:
- 每个 header 后面都需要一个 CRLF(回车换行)。
- header 字段中不应包含“:”字符。
Content-type
应为Content-Type
,并且没有名为error
的标准 header (除非这是您发送的自定义 header ,请将其删除)。html
不是有效的内容类型,请尝试text/html
。
关于java - 使用原始套接字发送 HTTP 响应,客户端未收到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15634331/