Jdk 中的HttpClient比较好用,默认情况下,是不会为我们维持Cookie,我们需要通过下面的方法实现
参考官方的文档说明。并参照如下代码
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/CookieHandler.html
public static HttpUtils INST=new HttpUtilsImpl();
private HttpClient httpClient;
private CookieManager cookieManager;
private HttpUtilsImpl(){
//使用默认的CookieManager,并且接受所有第三方Cookie
cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
httpClient = HttpClient.newBuilder()
.connectTimeout(Duration.ofMillis(5000))
.cookieHandler(cookieManager)//注意在此步骤送送入
.followRedirects(HttpClient.Redirect.NORMAL)
.build();
}
通过以上代构建的HttpClient 拥有Cookie自动维持的功能。
代码参见代码链接