BadRequest: 400 неверный запрос
Я хочу сделать запрос на авторизацию с помощью Spring Webflux в тестовой среде Paysafe. Я пробовал это:
Mono<AuthorizeRequest> transactionMono = Mono.just(transaction);
return client.post().uri("https://api.test.paysafe.com/cardpayments/v1/accounts/{id}/auths", "123456789")
.header(HttpHeaders.CONTENT_TYPE, "application/json")
.header(HttpHeaders.AUTHORIZATION, "Basic dGVz.......")
.accept(MediaType.APPLICATION_JSON)
.contentType(MediaType.APPLICATION_JSON)
.body(transactionMono, AuthorizeRequest.class)
.retrieve()
.bodyToMono(AuthorizeResponse.class);
Но я получаю:
org.springframework.web.reactive.function.client.WebClientResponseException$BadRequest: 400 Bad Request
at org.springframework.web.reactive.function.client.WebClientResponseException.create(WebClientResponseException.java:174)
at org.springframework.web.reactive.function.client.DefaultWebClient$DefaultResponseSpec.lambda$createResponseException$15(DefaultWebClient.java:512)
Вы знаете, как я могу это решить?
2 ответа
Сервер, на который вы отправили запрос, ответил с кодом состояния http 400. Это означает, что ваш запрос имеет неправильный формат.
Например, вы могли забыть включить параметр.
400 Bad Request может быть вызван многими причинами. Чтобы узнать, что именно вызывает проблему, попробуйте распечатать тело ответа, как показано ниже:
.exchange()
.flatMap(clientResponse -> {
if (clientResponse.statusCode().is5xxServerError()) {
clientResponse.body((clientHttpResponse, context) -> {
return clientHttpResponse.getBody();
});
return clientResponse.bodyToMono(String.class);
}
else
return clientResponse.bodyToMono(String.class);
})
.block();
Это поможет вам найти правильную причину, а затем вы сможете исправить