我正在尝试在 Spring Boot 中使用WebClient发出API POST 请求。但我无法发出请求并接收JSONObject形式的响应。用RestTemplate我就做到了,最近开始学习WebClient。所以我被困住了。
错误 Spring 给出: Error:(48, 28) java: 不兼容的类型:不存在类型变量 T 的实例,因此reactor.core.publisher.Mono 符合 org.json.simple.JSONObject
这是我的源代码:
控制器.java
JSONObject jsonObject = new JSONObject();
Turnover turnover = new Turnover();
JSONObject resp = webClientBuilder.build()
.post()
.uri("http://180.12.10.10:8080/turnover/")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.accept(MediaType.APPLICATION_JSON )
.body(Mono.just(turnover),Turnover.class)
.retrieve()
.bodyToMono(JSONObject.class);
Run Code Online (Sandbox Code Playgroud)
营业额.java
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Turnover {
private String start_date;
private String end_date;
private String account;
public Turnover(){
setStart_date("01.01.2020");
setEnd_date("01.06.2020");
setAccount("20296");
}
}
Run Code Online (Sandbox Code Playgroud)
我要发送的Json
{
"start_date":"01.01.2020",
"end_date":"01.06.2020",
"account":"20296"
}
Run Code Online (Sandbox Code Playgroud)
响应API返回:
{
"status": …Run Code Online (Sandbox Code Playgroud) 我正在尝试获取字符串列表中的最大数量。
我的代码是:
List<String> list = new ArrayList<String>();
list.add("00657");
list.add("00632");
list.add("00656");
list.add("01125");
Integer maxNum = list.stream()
.mapToInt(Integer::intValue)
.max();
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了一个错误。错误是:无法编译的源代码 - 错误的符号类型:java.util.stream.Stream.mapToInt.max。
我应该得到1125结果。我尝试了不同的方法,但都没有奏效。