Запрос WebClient не работает после преобразования из шаблона RestJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Запрос WebClient не работает после преобразования из шаблона Rest

Сообщение Anonymous »

У меня возникла проблема с преобразованием приведенного ниже фрагмента кода в WebClient. Я планирую преобразовать его в WebClient, как рекомендовано в этом документе https://www.baeldung.com/rest-template, и думаю, что он более подходит, поскольку он асинхронный.
Шаблон отдыха

Код: Выделить всё

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add(Constants.AUTHORIZATION, Constants.AUTH_TOKEN_TYPE_BEARER + token);
requestHeaders.add(Constants.HEADER_ENV, "it01");
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
//String bodyString = safeObjectMapper().writeValueAsString(wlsMemoRequest);
HttpEntity requestEntity = new HttpEntity(bodyString, requestHeaders);

logger.info("createWlsMemo url : " + url);
logger.info("createWlsMemo requestEntity : " + requestEntity.toString());

ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, CreateWlsMemoResponse.class);
HttpStatus statusCode = responseEntity.getStatusCode();
logger.info("createWlsMemo statusCode: " + statusCode);
Я попытался преобразовать его в веб-клиент, как показано ниже.
Веб-клиент

Код: Выделить всё

WebClient webClient = WebClient.builder()
.defaultHeaders(httpHeaders -> {
httpHeaders.add(Constants.AUTHORIZATION, Constants.AUTH_TOKEN_TYPE_BEARER + token);
httpHeaders.add(Constants.HEADER_ENV, "blahblah");
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
httpHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
logger.info("httpHeaders: " + httpHeaders); //same object as above
})
.build();

Mono createWlsMemoResponse = webClient.method(HttpMethod.POST)
.uri(url)
.bodyValue(wlsMemoRequest)
.exchangeToMono(response -> {
if (response.statusCode().equals(HttpStatus.OK)) {
logger.info("CreateWlsMemoResponse part");
return response.bodyToMono(CreateWlsMemoResponse.class);
}
else {
logger.info("Error encountered here!");
throw new CreateMemoException("Error encountered Here!");
}
});

Но при использовании WebClient у меня всегда возникает проблема с тайм-аутом, но при использовании RestTemplate я получаю ответ об успехе. Может ли кто-нибудь помочь? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/787 ... t-template
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»