/**
* 模拟带cookie的请求
*/
public String checkLogin() throws Exception {
//获取cookie值
String sessionId = MyUtils.getCookie("ONEKEYID");
//模拟浏览器设置cookie
BasicCookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", sessionId);
cookie.setVersion(0);
cookie.setDomain(domain);
cookie.setPath("/");
cookieStore.addCookie(cookie);
// 有了cookieStore
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
// HttpClient略过https
SSLContext sslContext = SSLContextBuilder.create().useProtocol(SSLConnectionSocketFactory.SSL).loadTrustMaterial((x, y) -> true).build();
RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(5000).build();
CloseableHttpClient closeableHttpClient = httpClientBuilder.setDefaultCookieStore(cookieStore).setDefaultRequestConfig(config).setSSLContext(sslContext).setSSLHostnameVerifier((x, y) -> true).build();
// 在cookieStore 中设置了cookie,此处可以不用设置;此处设置的cookie不会跟随重定向
// httpGet.setHeader("Cookie", "sessionId=76561198175162242");
HttpGet httpGet = new HttpGet("https://url");
CloseableHttpResponse response = closeableHttpClient.execute(httpGet);
String result = EntityUtils.toString(response.getEntity());
return result;
}
/**
* 获取cookie值
*/
public static String getCookie(String name) {
Cookie[] cookies=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getCookies();
if (cookies != null && cookies.length > 0) {
for (Cookie c : cookies) {
if (c.getName().equals(name)) {
return c.getValue();
}
}
}
return null;
}
带cookie的https请求
最新推荐文章于 2023-01-13 15:05:48 发布