controller层怎么写url为http://10.0.162.251:8080/lis/optionalPlanRestService/UserSurveys,使用RestTemplate调用接口怎么正常返回类数据?{ "ret": 0, "msg": null, "data": [ { "prtno": "162009048", "grpno": "", "grpcontno": "66200094300" } ], "success": true }除了url入参还有{ "insuredno":"100224543188" }
时间: 2023-05-11 07:05:40 浏览: 98
您可以使用以下代码来实现controller层的url为http://10.0.162.251:8080/lis/optionalPlanRestService/UserSurveys的调用:
```java
@RestController
@RequestMapping("/lis")
public class UserController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/optionalPlanRestService/UserSurveys")
public ResponseEntity<String> getUserSurveys(@RequestParam("insuredno") String insuredno) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
JSONObject request = new JSONObject();
request.put("insuredno", insuredno);
HttpEntity<String> entity = new HttpEntity<>(request.toString(), headers);
ResponseEntity<String> response = restTemplate.exchange("http://10.0.162.251:8080/lis/optionalPlanRestService/UserSurveys", HttpMethod.POST, entity, String.class);
return response;
}
}
```
其中,RestTemplate是Spring提供的用于调用RESTful服务的工具类,可以通过@Autowired注解进行注入。在getUserSurveys方法中,我们首先设置请求头的Content-Type为application/json,然后将请求参数封装成JSONObject对象,并将其转换为字符串作为请求体。最后,我们使用RestTemplate的exchange方法发送POST请求,并将返回的结果封装成ResponseEntity对象返回。
如果接口正常返回数据,您可以通过以下代码来解析返回的JSON数据:
```java
JSONObject responseJson = new JSONObject(response.getBody());
int ret = responseJson.getInt("ret");
JSONArray data = responseJson.getJSONArray("data");
boolean success = responseJson.getBoolean("success");
```
其中,response.getBody()方法可以获取到返回的JSON字符串,我们可以使用JSONObject将其转换为JSON对象,然后通过getXXX方法获取到对应的值。
阅读全文