您的位置:首页 > 理论基础 > 计算机网络

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

2012-08-03 15:37 465 查看
问题原因:之前使用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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐