Я получаю доступ к API, который ожидает, что я сделаю POST-вызов к их конечной точке входа в систему, а затем сделаю последующие вызовы для получения данных.Звонок, который я делаю к их конечной точке входа, работаетНо последующий вызов для получения данных выдает ошибку 401.Это ошибка, которую я получаю
org.springframework.web.client.HttpClientErrorException: 401 не авторизован в org.springframework.web.client.DefaultResponseErrorHandler.handleError (DefaultResponseEjwork.pr:. Org.pr)client.RestTemplate.handleResponseError (RestTemplate.java:615) по адресу org.springframework.web.client.RestTemplate.doExecute (RestTemplate.java:573) по адресу org.springframework.web.client.RestTemplate5:в org.springframework.web.client.RestTemplate.exchange (RestTemplate.java:465) в com.wsc.eventconsumer.phonex.api.InventoryServiceImpl.getProducts (InventoryServiceImpl.java:70)
Теперь это работаеткогда я использую Почтальон и клиент Restlet.Я заметил, что в клиенте Restlet вызов GET к API передает cookie, который был установлен API в вызове входа в систему.Я попытался передать заголовки ответа от вызова входа в систему в запросе GET.Но я все еще получаю 401. Я использую стандартную конфигурацию resttemplate.
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate"/>
HttpEntity<Credentials> entity = new HttpEntity<Credentials>(credentials, headers);
ResponseEntity<String> response = restTemplate.exchange(loginEndpoint, HttpMethod.POST, entity, String.class);
HttpHeaders rHeaders = response.getHeaders();
HttpEntity<String> request = new HttpEntity<String>(rHeaders);
ResponseEntity<Product[]> response2 = restTemplate.exchange(productEndpoint,
HttpMethod.GET, request, Product[].class);