我想发送一个 HTTP 请求并获取响应正文,但我有存储在多个服务器上的 URL。假设我有这个列表:
www.mysite.com 192.168.1.31
www.mysite.com 192.168.1.32
我想向所有不同的服务器(不同的 IP)但相同的 URL 发出请求
在Java中有什么选择吗?
我想发送一个 HTTP 请求并获取响应正文,但我有存储在多个服务器上的 URL。假设我有这个列表:
www.mysite.com 192.168.1.31
www.mysite.com 192.168.1.32
我想向所有不同的服务器(不同的 IP)但相同的 URL 发出请求
在Java中有什么选择吗?
是的,你可以这么做。将 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