如何从HttpExchange获取URL?

时间:2014-12-12 19:17:53

标签: java html webserver

我有这个自定义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服务法语等等。

1 个答案:

答案 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());
        //[...]
 }