while(isRunning == true) {
if (SSocket != null) {
try {
Socket socket = SSocket.accept();
PrintStream PStream = new PrintStream(socket.getOutputStream());
BufferedReader BReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String info = null;
while ((info = BReader.readLine()) != null) {
System.out.println("now got " + info);
if (info.equals("")) {
break;
}
}
String content = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Main></Main>";
PStream.println("HTTP/1.0 200 OK");
PStream.println("Content-Type: text/xml");
PStream.println("Content-Length: " + content.length());
PStream.println("");
PStream.println(content);
PStream.close();
BReader.close();
socket.close();
Thread.sleep(10);
} catch (Exception e) {
}
}
}
此代码使服务器显示xml,但当我转到另一个页面(例如http://10.0.0.101:39878/otherpage.html
)时,内容是相同的。如何更改每个页面的内容并在不存在时输入404?
答案 0 :(得分:0)
您必须解析客户端的请求以找出正在请求的页面,然后发送相应的内容。您展示的代码根本没有进行任何解析。实际上,它甚至没有读取客户端的完整请求,只是它的第一行,这是不够的。您需要阅读RFC 2616,它定义了HTTP协议。然后考虑不手动实现HTTP服务器,而是使用预制库。有关建议,请参阅How to create a HTTP server in Android?。