1

我想发送一个 HTTP 请求并获取响应正文,但我有存储在多个服务器上的 URL。假设我有这个列表:

www.mysite.com 192.168.1.31
www.mysite.com 192.168.1.32

我想向所有不同的服务器(不同的 IP)但相同的 URL 发出请求

在Java中有什么选择吗?

4

1 回答 1

1

是的,你可以这么做。将 URL 定义为您想要的,并使用 IP 地址代替域名。IEhttp://192.168.1.31/path/to/index.html 然后在发出请求之前添加“Host: www.mysite.com”标头。任何符合 HTTP/1.1 的服务器都将使用该标头的值作为访问它的域。

究竟如何实现这一点取决于您用于建立连接的任何库,但它们都应该能够设置任意标头 - 只要确保它不会用它自己的一个标头覆盖您的自定义“主机”标头网址。有关如何实现 HTTP 请求的示例,请参阅其他 StackOverflow 问题。

这是有效的,因为在网络上它都是 IP。您可以使用nc、socket 甚至 telnet自己尝试。

(open TCP connection to 192.168.1.31 port 80)
GET /path/to/index.html HTTP/1.1
Host: www.mysite.com
                                        <--blank line signals end of headers
于 2013-11-28T17:24:44.130 回答