在搜索了更多内容之后,并从Oleg的答案中得到了提示,我找到了HttpMethodParams ::
setVirtualHost()方法。
当HttpClient格式化请求时,它总是在发送请求之前就自己创建“主机”标头-
因此不能将其作为标准标头覆盖。但是在从URL生成“主机”标头的主机名之前,HttpClient检查HttpMethodParams对象以查看用户是否要覆盖主机名。这仅覆盖主机名,而不覆盖端口,因此虽然不如我希望的直观,但使用起来更容易。
使用它的代码如下所示:
Method m = new GetMethod("http://some-site/some/path");m.getParams().setVirtualHost("some-other-site");client.executeMethod(m);因为我喜欢一种衬垫,所以也可以写成:
client.executeMethod(new GetMethod("http://some-site/some/path") {{ getParams().setVirtualHost("some-other-site"); }});


