Java “如何覆盖http头”;主持人;在httpurl连接中?

Java “如何覆盖http头”;主持人;在httpurl连接中?,java,header,httpurlconnection,Java,Header,Httpurlconnection,我的代码如下所示: URL url = new URL("1.0.0.25/otfg/services"); HttpURLConnection cnx = url.openConnection(); cnx.setRequestProperty("Host", "example.org"); 但是当我用tcpdump记录传出包时,http头“Host”是1.0.0.25 可能是http头“主机”在发送过程的后期被覆盖,如果是,如何避免这种行为。 最后一句话解决了我的问题: System.se

我的代码如下所示:

URL url = new URL("1.0.0.25/otfg/services");
HttpURLConnection cnx = url.openConnection();
cnx.setRequestProperty("Host", "example.org");
但是当我用tcpdump记录传出包时,http头“Host”是1.0.0.25

可能是http头“主机”在发送过程的后期被覆盖,如果是,如何避免这种行为。

最后一句话解决了我的问题:

System.setProperty("sun.net.http.allowRestrictedHeaders", "true")
或在VM启动时:

-Dsun.net.http.allowRestrictedHeaders=true

为什么不在URL中使用主机名呢?我使用iptables来更改传出包的源ip地址,iptables使用伪ip地址1.0.0.25来查找必须更改的包。远程服务需要正确的域名来执行基于名称的虚拟主机服务。重复的可能重复的