使用HttpURLConnection做代理时遇到的cookie放不进去的问题

本文介绍了一种解决使用HttpURLConnection时遇到的302跳转导致cookie无法正常传递的问题的方法。通过禁用自动跳转并手动处理跳转逻辑,确保了cookie的正确传递。

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

问题原因:之前使用HttpURLConnection做代理,cookie都是可以透传的。今天遇到cookie放不进去的问题。查明原因,是用户登录后,程序放cookie的同时对用户进行了跳转的动作。也就是对方给HttpURLConnection返回了一个302,而HttpURLConnection默认对302自行处理,自己再去请求跳转页面的内容,然后才会将下一个200的内容返回给客户端。
解决方法:
//不自己处理302错误
HttpURLConnection.setFollowRedirects(false);
//设置不自动处理302后,传给客户端的相应也要设置问相应的响应码
response.setStatus(conn.getResponseCode());
//根据自己的需求,将跳转地址进行处理后传给客户端(让客户端通过代理地址访问目标服务器)
if(conn.getResponseCode() == 302){
 String location = conn.getHeaderField("location");
 location = replaceLocation(location, localDomain);
 response.setHeader("Location", location);
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值