# #java #spring-boot #http #google-kubernetes-engine
Вопрос:
Я использую пробную версию платформы google kubernetes для развертывания приложения spring boot. Я только что установил maven и попытался запустить приложение spring boot. Мое приложение на самом деле регулярно вызывает общедоступный api rest и обрабатывает ответ. Это прекрасно работает в моей локальной системе Windows. Но когда я запускаю его в GKE, он выдает следующую ошибку
<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);
}
Комментарии:
1. Ответ HTTP 403 означает, что клиенту не разрешен доступ к ресурсу. Действительно ли вызываемый вами API требует какого-либо типа аутентификации?
2. Нет, для этого не требуется никакой аутентификации.
Ответ №1:
Вы пытались получить доступ к любому другому API, чтобы узнать, сохраняется ли проблема или у вас проблемы только с текущим API? Похоже, что это новая конфигурация, но были ли у вас какие-либо успешные запросы к другим API?