controller层怎么写,使用RestTemplate调用接口怎么正常返回类数据? 除了url入参还有 "insuredno":"100224543188" 需要从postman动态传入 url为http://10.0.162.251:8080/lis/optionalPlanRestService/UserSurveys, 返回json 为 { "ret": 0, "msg": null, "data": [ { "prtno": "162009048", "grpno": "", "grpcontno": "66200094300" } ], "success": true } 怎么正常返回类数据?
时间: 2023-05-11 11:05:47 浏览: 194
postman-url-encoder:根据WHATWG规范实现URL编码
在controller层中,可以使用RestTemplate来调用接口并返回类数据。具体的代码实现如下:
```java
@RestController
public class MyController {
@Autowired
private RestTemplate restTemplate;
@PostMapping("/getData")
public MyData getData(@RequestBody MyRequest request) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<MyRequest> entity = new HttpEntity<>(request, headers);
ResponseEntity<MyResponse> response = restTemplate.exchange("http://10.0.162.251:8080/lis/optionalPlanRestService/UserSurveys", HttpMethod.POST, entity, MyResponse.class);
return response.getBody().getData().get(0);
}
}
class MyRequest {
private String insuredno;
public String getInsuredno() {
return insuredno;
}
public void setInsuredno(String insuredno) {
this.insuredno = insuredno;
}
}
class MyResponse {
private List<MyData> data;
public List<MyData> getData() {
return data;
}
public void setData(List<MyData> data) {
this.data = data;
}
}
class MyData {
private String prtno;
private String grpno;
private String grpcontno;
public String getPrtno() {
return prtno;
}
public void setPrtno(String prtno) {
this.prtno = prtno;
}
public String getGrpno() {
return grpno;
}
public void setGrpno(String grpno) {
this.grpno = grpno;
}
public String getGrpcontno() {
return grpcontno;
}
public void setGrpcontno(String grpcontno) {
this.grpcontno = grpcontno;
}
}
```
在上面的代码中,我们首先定义了一个RestController,其中包含了一个getData方法,该方法接收一个MyRequest对象作为入参,并返回一个MyData对象。在getData方法中,我们首先构造了一个HttpHeaders对象,并设置了Content-Type为application/json。然后,我们构造了一个HttpEntity对象,该对象包含了我们的请求数据和请求头信息。接着,我们使用RestTemplate的exchange方法来发送POST请求,并将返回的结果转换为MyResponse对象。最后,我们从MyResponse对象中获取到我们需要的MyData对象,并将其返回。
需要注意的是,我们在MyRequest对象中添加了一个insuredno属性,该属性可以通过postman动态传入。同时,我们在RestTemplate中使用了@Autowired注解来注入RestTemplate对象,这样就可以直接使用RestTemplate对象来发送请求了。
阅读全文