Java Http请求,HttpURLConnection HTTP请求丢失头信息,Head信息丢失解决方案

JSON 2024-12-17 19:02:07 5478

先说下背景,我昨天晚上一个解决一个 Http模拟请求 问题弄到了凌晨,最终发现这个问题提诡异的,origin头信息丢失了。

一、Head信息丢失,origin丢失原因

通过查询资料,发现  Java  底层(HttpURLConnection)认为origin是涉及到跨域问题,直接增加会有安全问题,所以你在我们设置请求头的过程中是会自动去掉的。

// 打开和URL之间的连接
conn = (HttpURLConnection) realUrl.openConnection();
// 设置 origin 头信息,大小写无差异
conn.setRequestProperty("origin","https://www.sojson.com");

这样直接设置是无效的。他在请求的时候最终会把origin删除。好比上面的图片一样,命名是有的。

为了测试增加头信息,如下面的代码:

// 打开和URL之间的连接
conn = (HttpURLConnection) realUrl.openConnection();
// 设置 origin 头信息,大小写无差异
conn.setRequestProperty("origin1","https://www.sojson.com");

origin1 不会消失。证明只会去掉origin信息

二、origin信息丢失解决办法

其实很简单,设置下允许头信息allowRestrictedHeaderstrue代码如下。

//解决 请求头丢失的问题(origin)
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
// 打开和URL之间的连接
conn = (HttpURLConnection) realUrl.openConnection();

这样就解决了。

这个问题用OKhttp是不会有的。一个隐藏的坑解决了,

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/534.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Http Get 请求Java 请求工具类封装
Java获取浏览器请求(User-Agent),分析浏览器信息,系统信息的几种办法。
JavaHTTP请求乱码解决,GZIP 返回值乱码解决
Java爬虫,Jsoup 爬取大众点评、美团商家信息电话号码解决方案
CDN 请求返回 connection reset by peer,被拦截请求解决方案
Springboot HTTP请求,Springboot HTTP 请求 Demo。Get/Post
在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具【更新说明】
Springboot HTTP Get/Post 请求讲解,Springboot几行代码完成Http请求
Java 实现在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具
Java API接口返回不是JSON的解决方案,SpringMVC返回JSON配置。
最新文章
文件上传漏洞与防御 4058
前端构建工具选型指南:Webpack、Vite、Rollup、esbuild 深度对比 1444
物联网时代2026年时序数据库选型指南 1151
SaaS行业面临AI挑战:从“无限复用”到“灵活适应” 1269
神经网络:从构造到模型训练全链路解析 1168
一文吃透 Redis 核心存储结构:ziplist、listpack 与哈希表扩容 / 并发查询 1593
Linux sudo提权完整指南:从基础用法到生产级安全配置 691
XSS 和 CSRF 的本质区别及开发防御全解析 772
JVM垃圾回收(GC)全维度解析:从原理到调优实战 813
Linux动静态库与ELF加载全解析:从实操制作到底层原理 912
最热文章
免费天气API,天气JSON API,不限次数获取十五天的天气预报 783114
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 711464
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 679993
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 562673
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 512621
Elasticsearch教程(四) elasticsearch head 插件安装和使用 484794
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 302947
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 247433
Elasticsearch教程(一),全程直播(小白级别) 233097
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 228329
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...