我目前正在尝试制作代理服务器。 我目前正在处理的部分是阻止某些网址。
我创建了一个基本的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();
感谢任何帮助,谢谢。
答案 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并在访问网站时捕获您的网络数据。