gpt4 book ai didi

java - html 内容在 mozilla 中显示为纯文本,而 chrome 和 ie 显示得很好

转载 作者:行者123 更新时间:2023-11-29 05:45:32 24 4
gpt4 key购买 nike

下面是我的代码。在此代码中,我使用 Java 套接字将一些 HTML 文本发送到特定端口(在本例中为 8900)。要访问通过 Java 套接字发送的 HTML 内容,我在本地浏览器上使用 URL http://localhost:8900/。问题在于,虽然 Chrome 和 Internet Explorer 可以很好地呈现 HTML 文本,但 Mozilla 只是将整个 HTML 内容显示为一个简单的文本。有什么解决办法吗?

import java.net.*;
import java.io.*;

class Proxy
{
public static void main(String args[])
{
try
{
ServerSocket svr = new ServerSocket(8900);
System.out.println("waiting for request");
Socket s = svr.accept();
System.out.println("got a request");
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();

FileOutputStream fout = new FileOutputStream("d:\\q.txt");
int x;
byte data[]= new byte[1024];

x = in.read(data);
fout.write(data,0,x);

fout.flush();
fout.close();

String response = "<html><head><title>HTML content via java socket</title></head><body><h2>Hi! Every Body.</h2></body></html>";
out.write(response.getBytes());
out.flush();

s.close();
svr.close();
System.out.println("closing all");
}
catch(Exception ex)
{
System.out.println("Err : " + ex);
}
}
}

最佳答案

您的服务器没有正确实现 HTTP 协议(protocol)。您直接发送 HTTP 响应的主体,而不是发回正确的 HTTP 响应,从状态行开始,然后是 HTTP header (应在其中指定 HTML 内容类型),然后是空行,最后响应主体。

参见 http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Response_message

关于java - html 内容在 mozilla 中显示为纯文本,而 chrome 和 ie 显示得很好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15972015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com