我有这个自定义HTTP服务器,但我希望能够根据不同的URL提供不同的内容。
如何从HttpExchange获取完整的URL?
示例:
www.abcdefg.com/index.html将为abcdefg提供内容
www.qrstuvwxyz.com/index.html将为qrstuvwxyz提供内容
同样,rawrrawr.abcdefg.com/index.html将在rawrrawr部分下为abcdefg提供内容。
或en.abcdefg.com服务英语,cn.abcdefg.com服务中文,fr.abcdefg.com服务法语等等。
答案 0 :(得分:2)
如RFC 2616第14.23章所述,"主持人"标题应包含该信息。
所以你应该能够通过
获得这些信息 public void handle(final HttpExchange t) throws IOException {
String requestedURL = "http://"+t.getRequestHeaders().getFirst("Host") + t.getRequestURI();
System.out.println(requestedURL);
URL u = new URL(requestedURL);
System.out.println("Host: " + u.getHost());
System.out.println("Port: " + u.getPort());
//[...]
}