使用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);
}
解决方法:
//不自己处理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);
}
相关文章推荐
- 使用HttpURLConnection时遇到的资源未释放的问题
- 使用HttpURLConnection时遇到的资源未释放的问题
- Android使用HttpURLConnection编程遇到的302重定向问题
- Android 6.0 使用HttpURLConnection 使用Get提交遇到405等问题。
- HttpUrlConnection使用时遇到的问题
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- 使用HttpURLConnection采用get方式请求数据-----乱码问题
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- httpurlconnection中设置cookie的时机问题
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- HttpURLConnection使用cookie
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- UIWebView 使用中遇到的问题(NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802))
- 遇到了一个HttpURLConnection乱码问题:结果是JVM file.encoding错误
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- httpurlconnection中设置cookie的时机问题
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)