介绍:网上查了很多关于httpclient,okhttp以及httpURLconnection发送请求的方式,但是都没有解决发送请求自动重定向cookies信息传送的问题,经过研究本文解决了这一问题,本文根据okhttp为例来解决:
原理:实现了cookiejar,并且重新其中的saveFromResponse方法,使其重定向跳转的时候将原本存储的cookies放到最新的cookie中
代码:
public class LocalCookieJar implements CookieJar { List<Cookie> cookies=new ArrayList<>(); @Override public List<Cookie> loadForRequest(HttpUrl arg0) { if (cookies != null) return cookies; return new ArrayList<Cookie>(); } @Override public void saveFromResponse(HttpUrl arg0, List<Cookie> cookies) { this.cookies.addAll(cookies); } }注意事项:
1、引入okhttp的相关jar包
2、使用同一个client,最好是单例
3、其他请求头信息也可以依照此方法获取