关于请求第三方接口Host无效的问题

场景:
    请求第三方接口,携带了一些参数,请求头Host也有带,怎么请求都请求不过去,后来查询了很多文档,才知道了啥原因。


如果请求第三方接口,携带了Host参数,都会被过滤掉的,这个Host,System默认是false。也就是说你请求过去的是默认的host,或者根本没有这个参数
如果需要覆盖,在启动类增加System.setProperty("sun.net.http.allowRestrictedHeaders","true");,在启动类上加上这个,改为true,代表覆盖Host

看到网上有人说,直接方法代码里加上就可以了,还是看场景吧,如果你请求的接口本地可以请求通,没有什么网络策略,那你直接启动方法是可以生效的。如果你只能发版上去才能够请求通,那么你必须把这个配置卸载启动类里,因为运行时和编译时的问题System.setProperty();这个方法,运行时是禁止更改的,这是个环境变量,是JRE(runtime)环境。你打包的时候不会去编译这个方法吧,在启动类打包的时候就直接设置了,系统类加载器在启动后只会初始化一次。

在方法代码里设置:

在启动类里设置:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值