Add my custom http header to Spring RestTemplate request / extend RestTemplate

后端 未结 3 679
名媛妹妹
名媛妹妹 2020-12-13 17:50

My current code:

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Mall[] m         


        
3条回答
  •  自闭症患者
    2020-12-13 18:22

    Add a "User-Agent" header to your request.

    Some servers attempt to block spidering programs and scrapers from accessing their server because, in earlier days, requests did not send a user agent header.

    You can either try to set a custom user agent value or use some value that identifies a Browser like "Mozilla/5.0 Firefox/26.0"

    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.add("user-agent", "Mozilla/5.0 Firefox/26.0");
    headers.set("user-key", "your-password-123"); // optional - in case you auth in headers
    HttpEntity entity = new HttpEntity("parameters", headers);
    ResponseEntity respEntity = restTemplate.exchange(url, HttpMethod.GET, entity, Game[].class);
    
    logger.info(respEntity.toString());
    

提交回复
热议问题