一定是在实例化webview后,获得cookie,不用获取cookies字符串分割获取
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
cookieManager.getCookieStore().getCookies().forEach(cookie -> {
String name = cookie.getName();
String value = cookie.getValue();
String domain = cookie.getDomain();
long maxAge = cookie.getMaxAge(); // seconds
boolean secure = cookie.getSecure();
....
});
或者
CookieHandler cookieManager = CookieHandler.getDefault();
Map<String, List<String>> result = null;
try {
result = cookieManager.get(new URI("https://xxxx"), new HashMap<>());
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
}
java.util.List cookies = result.get("Cookie");
cookie = (String) cookies.get(0);
2023年9月11日09:28:52
使用了上面的cookie后报错
九月 08, 2023 7:27:29 下午 org.apache.http.client.protocol.ResponseProcessCookies processCookies
警告: Invalid cookie header: "Set-Cookie: lang=zh; Domain=.xxx.com; Expires=Sun, 08 Oct 2023 11:33:00 GMT; Path=/". Invalid 'expires' attribute: Sun, 08 Oct 2023 11:33:00 GMT
解决方法
CookieHandler cookieManager = CookieHandler.getDefault();
Map<String, List<String>> result = cookieManager.get(new URI("http:/xxxx"), new HashMap<>());
java.util.List cookies = result.get("Cookie");
String cookie = (String) cookies.get(0);
CloseableHttpClient httpClient= HttpClients.custom()
.setDefaultRequestConfig(RequestConfig.custom()
.setCookieSpec(CookieSpecs.STANDARD).build())
.build();
Unirest.setHttpClient(httpClient);
Unirest.post
原因就是:https://blog.csdn.net/qq_32483145/article/details/88080453