如何覆盖HttpURLConnection中的HTTP标头“主机”?


问题内容

我的代码如下:

URL url = new URL("1.0.0.25/otfg/services");
HttpURLConnection cnx = url.openConnection();
cnx.setRequestProperty("Host", "example.org");

但是,当我使用tcpdump登录传出程序包时,http头“主机”为1.0.0.25。

可能是在发送过程的稍后阶段覆盖了HTTP标头“主机”,如果可以的话,如何避免这种行为。


问题答案:

最后一条评论解决了我的问题:

System.setProperty("sun.net.http.allowRestrictedHeaders", "true")

或在VM启动时:

-Dsun.net.http.allowRestrictedHeaders=true