将HTML文件加载到输出流

时间:2017-02-20 13:46:30

标签: java html proxy server

我目前正在尝试制作代理服务器。 我目前正在处理的部分是阻止某些网址。

我创建了一个基本的HTML页面,只要输入了阻止的网址但它当前没有工作,就会显示该页面。

以下是我服务器该部分的代码。

Scanner scanner = new Scanner( new File("filePath") );
String htmlString = scanner.useDelimiter("\\Z").next();
scanner.close();
byte htmlBytes[] = htmlString.getBytes("UTF-8");
toClient.write(htmlBytes);

toClient是我的浏览器的输出流,即

client = mySocket.accept();
OutputStream toClient = client.getOutputStream();

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

响应中必须包含以下标头信息。

OutputStream clientOutput = client.getOutputStream();

clientOutput.write("HTTP/1.1 200 OK\r\n".getBytes());
clientOutput.write(("ContentType: text/html\r\n").getBytes());
clientOutput.write("\r\n".getBytes());

Scanner scanner = new Scanner(new File("server.html"));
String htmlString = scanner.useDelimiter("\\Z").next();
scanner.close();
clientOutput.write(htmlString.getBytes("UTF-8"));

clientOutput.write("\r\n\r\n".getBytes());
clientOutput.flush();

答案 1 :(得分:0)

正如已经提到的评论,您需要先发送HTTP标头。谷歌他们或如果你想做一些"研究"您自己使用Wireshark并在访问网站时捕获您的网络数据。