【问题标题】:Sending html from java socket [closed]从java套接字发送html [关闭]
【发布时间】:2012-11-22 17:42:26
【问题描述】:

我正在尝试使用封装在 BufferedWriter 中的 Java 套接字发送“index.html”代码。当我打开浏览器并连接到 'localhost:port' 我得到:

  • 文本输出 (<head>...</head> <body>...</body>) - firefox@linux
  • 文本输出 - chrome@linux
  • 正确的网页视图 - konqueror@linux
  • 文本输出 - firefox@windows7

我怎样才能解决这个问题以获得每个浏览器的正确视图?

【问题讨论】:

  • 你设置了响应头吗?

标签: java html sockets output


【解决方案1】:

我怎样才能解决这个问题以获得每个浏览器的正确视图?

根据您的描述,您的代码似乎严重违反了 HTTP 协议,并且每个浏览器都以不同的方式处理此违规行为。您需要做的第一件事是重温 HTTP 请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6

听起来您没有发送响应状态行,所需的标头包括 Content-Length 等,然后是消息正文(您的 index.html)

在阅读 RFC2616 并意识到遵守 HTTP 协议所涉及的内容之后,您可能需要重新考虑自己做这件事,并考虑使用几个框架中的任何一个来为您处理这个问题 - TomcatJetty 非常流行的基于 Java 的 HTTP 框架。 Netty 也是一个选项,它是一个更轻量级的可定制框架。

【讨论】:

  • 谢谢吉多。那成功了。我想发布代码,但这样做仍然有一些小问题。
猜你喜欢
  • 2014-10-05
  • 1970-01-01
  • 2014-10-05
  • 2012-09-14
  • 2016-04-28
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多