首页 > 解决方案 > org.springframework.web.client.HttpClientErrorException: 403 null (Spring RestTemplate)

问题描述

我正在尝试使用 RestTemplate 发送 GET 请求。我的代码看起来像: -

   RestTemplate template = new RestTemplate();
   HttpHeaders headers = new HttpHeaders();
   headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
   headers.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
   headers.add("_rToken", cookie.getValue());
   String url = getUrl(contextUrl);
   HttpEntity<Object> entity = new HttpEntity<Object>(headers);
   ResponseEntity<String> response = null;
   try {
       response = template.exchange(url, HttpMethod.GET, entity, String.class);
   }
   catch(RestClientException ex) {
       ex.printStackTrace();
   }
   return response;

在调试时,我的 URL 看起来不错。我作为实体拥有的是:-

body = null,
headers = <{Accept=[application/json], 
            user-agent=[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36],
           _rToken=[2a6ac90f-1dfb-4df3-8d23-6d8d948fb9b5]}> 

由于我的 get 方法不带参数,因此 body 应该为空。我在这里做错了什么?

堆栈跟踪:

org.springframework.web.client.HttpClientErrorException: org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94) at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:79) 的 403 null在 org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) 在 org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:773) 在 org.springframework.web.client.RestTemplate.doExecute (RestTemplate.java:726) 在 org.springframework.web.client.RestTemplate.execute(RestTemplate.java:682) 在 org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:598) 在 com.hm。 ul.util.PlpUMCommunicator.get(PlpUMCommunicator.java:53)

标签: javaspringresttemplate

解决方案


推荐阅读