HttpURLConnection 设置Host 头部无效
Posted 信行合一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpURLConnection 设置Host 头部无效相关的知识,希望对你有一定的参考价值。
这个问题的起因是在使用FeignClient 设置header信息的时候无效
@FeignClient(url = "http://localhost:8083", name = "demoClient")
public interface FeignTest {
@RequestMapping(value = "/hello", method = RequestMethod.GET, headers = "host=www.test.com")
String hello(@RequestParam("id") String id, @RequestParam("name") String name);
}
接收方需要Host信息,但是使用这种方式发出去请求一直报 404,最后跟踪代码发现问题是在添加header的时候会过滤 key 为 host 的 header,最后发现这个策略执行是因为默认情况下这个系统属性sun.net.http.allowRestrictedHeaders
为 false
所以问题就在于把这个属性设置为 true 即可
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
以上是关于HttpURLConnection 设置Host 头部无效的主要内容,如果未能解决你的问题,请参考以下文章
我可以在使用 java 的 HttpUrlConnection 类的地方覆盖 Host 标头吗?