最近在使用RestTemplate调用的时候,需要设置Cookie,研究了一番,最终解决。
示例:
HttpHeaders headers = new HttpHeaders();//header参数
List<String> cookies = new ArrayList<>();
cookies.add("tk=dlfjdfodfikk3k33kk3k3434343dfdf");
// header设置
headers.add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36");
// cookie设置
headers.put(HttpHeaders.COOKIE, cookies);
HttpEntity<String> httpEntity = new HttpEntity(headers);
String url = String.format(Constant.DOUBAN_HOT_MOVIE_URL, hotCount);
log.info("url: {}", url);
ResponseEntity<DouBanHotMovie> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, DouBanHotMovie.class);
尝试了其他方法,如getForObject也不行,只能用exchange方法。它们之前的区别,以后再研究。