簡體   English   中英

使用原始套接字發送HTTP響應,客戶端未收到消息

[英]Sending HTTP response with raw sockets, client doesn't receive message

我正在嘗試將此消息實體正文發送給客戶端。 但是,此消息似乎未發送。 導致這種情況的可能原因是什么? 字串訊息

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實例發送消息,其參數為message.getBytes()

在瀏覽器中看不到html消息。

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

  String message = // above lines

  sender.write(message.getBytes())

假設您正在通過原始套接字發送此數據,則需要修復以下問題:

  • 每個標題后面都需要一個CRLF(回車,換行)。
  • 標頭字段中不得包含“:”字符。
  • Content-type應該是Content-Type ,並且沒有命名為error標准頭(除非那是您發送的自定義項,請將其刪除)。
  • html不是有效的內容類型,請嘗試使用text/html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM