我正在尝试使用 java.net.HttpURLConnection 向服务器发出 HTTP 请求。我需要发送的 HTTP 标头之一是“Via”。在我的代码中有这样的东西:
connection.addRequestProperty("X-test", "test_header_contents"); // just a sanity test
connection.addRequestProperty("Via", "via_header_contents");
当我使用数据包嗅探器时,我可以看到测试标头正在通过,但通过标头没有。我知道 Via 是一个“受限”标题,所以我添加了这一行:
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
当我过去遇到同样的问题时,这条线有效,但现在不起作用。我知道系统属性已设置,因为我在尝试添加 HTTP 标头之前调用了 System.getProperty,它返回 true。我还应该做些什么才能发送 via 标头吗?就像我说的,这以前有效,但现在无效。我认为唯一改变的是我从 Java 6 迁移到 7。感谢您给我的任何帮助。