我想在通过webclient进行api调用时传递通用请求体。我在数据库中有动态键值对,比如(key1-value1,key2-value2,key3-value3)。此键值可能增大或减小。
有没有办法用json请求体的动态数据调用api?
webClient.post().uri(uri).header(CONTENT_TYPE, APPLICATION_JSON)
.body({DYANAMIC JSON}).retrieve().onStatus(HttpStatus::isError, clientResponse -> {
return Mono.error(new Exception("error"));
}).bodyToMono(String.class);
谢谢您
2条答案
按热度按时间7gs2gvoe1#
只需将主体作为map传递,在body中可以将其Map到map.class或object类。根据您的要求,您也可以传递jsonobject。
jk9hmnmh2#
如果已经有完整的请求正文,可以使用快捷方式方法
bodyValue
.此处的文档中描述了插入请求正文:https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#webflux-客户主体
注意:您也可以使用快捷方式
contentType(MediaType.APPLICATION_JSON)
而不是header("Content-Type", MediaType.APPLICATION_JSON)