Java 当我在GoogleKubernetes引擎上运行我的应用程序时,我得到org.springframework.web.client.httpclienterorException$Probidden:403 Probidden error
我正在使用google kubernetes平台的试用版来部署我的spring boot应用程序。 我刚刚安装了一个maven,并尝试运行我的spring boot应用程序。我的应用程序实际上定期调用公共RESTAPI并处理响应。它在我的本地windows系统中运行良好。 但当我在GKE中运行它时,它给出了以下错误Java 当我在GoogleKubernetes引擎上运行我的应用程序时,我得到org.springframework.web.client.httpclienterorException$Probidden:403 Probidden error,java,spring-boot,http,google-kubernetes-engine,Java,Spring Boot,Http,Google Kubernetes Engine,我正在使用google kubernetes平台的试用版来部署我的spring boot应用程序。 我刚刚安装了一个maven,并尝试运行我的spring boot应用程序。我的应用程序实际上定期调用公共RESTAPI并处理响应。它在我的本地windows系统中运行良好。 但当我在GKE中运行它时,它给出了以下错误 <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/htm
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR... (919 bytes)]
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:109) ~[spring-web-5.3.6.jar!/:5.3.6]
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:186) ~[spring-web-5.3.6.jar!/:5.3.6]
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:125) ~[spring-web-5.3.6.jar!/:5.3.6]
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63) ~[spring-web-5.3.6.jar!/:5.3.6]
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:819) ~[spring-web-5.3.6.jar!/:5.3.6]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:777) ~[spring-web-5.3.6.jar!/:5.3.6]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711) ~[spring-web-5.3.6.jar!/:5.3.6]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:602) ~[spring-web-5.3.6.jar!/:5.3.6] ```
my http call:
public void callHttpUrl(List<String> pinCodes) throws JsonProcessingException {
String url = env.getProperty("base.url");
String date = DateUtil.getTodayDate();
for (String pinCode : pinCodes) {
UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromUriString(Objects.requireNonNull(url))
.queryParam("pincode", pinCode)
.queryParam("date", date);
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(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");
HttpEntity<String> entity = new HttpEntity<>("parameters", headers);
uriComponentsBuilder.toUriString();
LOGGER.debug("URL is {}", uriComponentsBuilder.toUriString());
String response = restTemplate.exchange(uriComponentsBuilder.toUriString(), HttpMethod.GET, entity, String.class).getBody();
LOGGER.debug(response);
processResponse(response);
}
错误。。。(919字节)]
在org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:109)~[spring-web-5.3.6.jar!/:5.3.6]
在org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:186)~[spring-web-5.3.6.jar!/:5.3.6]
在org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:125)~[spring-web-5.3.6.jar!/:5.3.6]
在org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)~[spring-web-5.3.6.jar!/:5.3.6]
在org.springframework.web.client.restemplate.handleResponse(restemplate.java:819)~[spring-web-5.3.6.jar!/:5.3.6]
在org.springframework.web.client.restemplate.doExecute(restemplate.java:777)~[spring-web-5.3.6.jar!/:5.3.6]
在org.springframework.web.client.restemplate.execute(restemplate.java:711)~[spring-web-5.3.6.jar!/:5.3.6]
在org.springframework.web.client.restemplate.exchange(restemplate.java:602)~[spring-web-5.3.6.jar!/:5.3.6]```
我的http呼叫:
public void callHttpUrl(列表pinCodes)引发JsonProcessingException{
字符串url=env.getProperty(“base.url”);
字符串date=DateUtil.getTodayDate();
用于(字符串夹码:夹码){
UriComponentsBuilder UriComponentsBuilder=UriComponentsBuilder.fromUrString(Objects.requireNonNull(url))
.queryParam(“pincode”,pincode)
.queryParam(“日期”,日期);
HttpHeaders=新的HttpHeaders();
setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
添加(“用户代理”、“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/54.0.2840.99 Safari/537.36”);
HttpEntity=新的HttpEntity(“参数”,标题);
uriComponentsBuilder.toUriString();
debug(“URL为{}”,uriComponentsBuilder.toUriString());
String response=restTemplate.exchange(uriComponentsBuilder.toUriString(),HttpMethod.GET,entity,String.class).getBody();
调试(响应);
过程响应(response);
}
您是否尝试访问任何其他API以查看问题是否仍然存在,或者是否只是当前API存在问题?这听起来像是一个新配置,但您是否有任何对其他API的成功请求?HTTP 403响应意味着不允许客户端访问资源。您使用的API是否为calling实际上需要某种类型的身份验证?不,它不需要任何身份验证。