Я хочу подражать следующему почтовому запросу в моем коде:
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"identifier\": \"test1\" \
} \
}" \
https://www.sampleurl.com/createuser
В идеале ответ JSON, который я получу, будет выглядеть следующим образом
{"data": {"id": "111", "identifier": "test1", "secret": "SECRET"}}
Я пытаюсь использовать WebClient для создания такого запроса
WebClient req = WebClient.builder().baseUrl("https://www.sampleurl.com").build();
String data = "{" + "\n" + "\t" + "\"data\": { \n";
data += "\t" + "\t" + "\"identifier\": \"" + username + "\"\n";
data += "\t" + "}" + "\n" + "}";
body.setIdentifier(username);
String t = req.post().uri("/createuser")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.header("App-id", APPID)
.header("Secret", SECRET)
.body(BodyInserters.fromPublisher(Mono.just(data), String.class))
.retrieve()
.bodyToMono(String.class)
.doOnNext(myString -> {System.out.println(myString);})
.block();
Я получаю сообщение об ошибке
org.springframework.web.reactive.function.client.WebClientResponseException $ BadRequest: 400 Bad Request
при выполнении этого. .. Куда я иду не так? Также есть ли более эффективный способ отправки такого запроса? Я не могу понять, как правильно использовать Mono.