记踩HttpRequest设置header无效导致404问题

博客作者在使用Hutool进行网络请求时遇到404错误,经过排查发现,问题源于`HttpURLConnection`的限制,不允许自定义Host头部。官方文档与实际行为存在出入,导致请求失败。解决方案是找到允许设置限制头部的方法或寻找替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中有集成hutool的依赖,平时用惯了这个工具类,觉得还挺不错,所以想着某个需求也用这个。

可是,意外往往就是在意想不到的时候发生了。

这个需求发布到线上后发现,请求算法的接口报404错误。明明已经在 header 设置了参数 Host,可是算法的服务器依然很诚实的返回了404。

关键代码如下

580

大致的检查下,应该问题出在了 execute() 这个方法里。

来到了 初始化网络连接 的方法

581

设置请求头

582

通过断点来到 HttpURLConnectionsetRequestProperty() 方法

583

在这个方法里会判断 是否是限制的头部信息

584

585

由于 allowRestrictedHeaders 为false,并没有打开。(导致受限制的头部信息集合生效)

586

并且由于 受限制的集合() 里包含 Host

587

导致了自定义Host不成功,破案了!

可是 Hutool 的官方文档却这样说明

588

额…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值