我想发送一个HTTP请求并获取响应正文,但我有一个存储在多个服务器上的URL。假设我有这个清单:
www.mysite.com 192.168.1.31
www.mysite.com 192.168.1.32
我希望向所有不同的服务器(不同的IP)发出请求,但是相同的URL
在Java中有没有选择呢?
答案 0 :(得分:0)
是的,你可以这样做。将URL定义为您想要的并使用IP地址代替域名。 I.E. http://192.168.1.31/path/to/index.html
然后在发出请求之前添加“Host:www.mysite.com”标头。任何符合HTTP / 1.1的服务器都将使用该标头的值作为访问它的域。
完全你如何完成这取决于你用来建立连接的库,但他们都应该能够设置任意标题 - 只要确保它不会覆盖你的自定义“主机”标头,其中有一个来自URL。有关如何实现HTTP请求的示例,请参阅this other StackOverflow question。
这是有效的,因为在线上它是所有IP。您可以使用nc,套接字甚至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