修改Http消息的消息头Host

在 HttpURLConnection 类中直接使用如下代码无法修改Host的值:

connection.setRequestProperty("Host", host);

需要在之前设置系统属性后才真正更改成功:

// 设置可以修改HOST值
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");

在HttpClient类中使用GetMethod或PostMethod发送Http时也会遇到不能修改Host值的情况:

method.setRequestHeader("Host","a.xxxx.com")

而用另一种方法可以成功:

method.getParams().setVirtualHost("a.xxxx.com");
原文地址:https://www.cnblogs.com/fengdeng/p/5807501.html