为啥要用后端调用第三方接口
1最重要的一点 手机APP不能直接访问第三方接口,他不会部署到服务器,必须用外网+端口号的形式访问 所以让app调用后端接口来访问第三方接口
2、速度会加快,前端直接调用第三方 然后将第三方返回的数据再传给后端,后端处理后(过滤)传给前端 页面显示 太麻烦
前端直接调用后端,后端调用第三方接口,处理后直接传给前端
@AutoLog(value = "APP调用第三方")
@ApiOperation(value="APP调用第三方", notes="APP调用第三方")
@PostMapping(value = "/appforward")
public Result<?> pysearch(@RequestBody toPy tp) {
// 针对调用接口的类型是@RequestBody,而不是此接口中的
// HttpHeaders headers = new HttpHeaders();
// headers.setContentType(MediaType.APPLICATION_JSON);
String image = tp.getImage();
// String url1 = "http://localhost:8080/jeecg-boot/product/product/testthree";
String url = "http://localhost:8007/get_image";
MultiValueMap<String,Object> paramMap = new LinkedMultiValueMap<>();
paramMap.add("data[name]",image);
// String back = restTemplate.postForObject(url, paramMap, String.class);
String data = restTemplate.postForObject(url, paramMap, String.class);
JSONObject jsonObject = JSONObject.parseObject(data);
//将多余的data去掉 然后进行转换实体类
String suoyou = jsonObject.getString("data");
JSONObject jsonObject1 = JSONObject.parseObject(suoyou);
Pyback pyback = JSONObject.toJavaObject(jsonObject1, Pyback.class);
// JSONObject imlist = jsonObject.getJSONObject("imlist");
// Data share = JSON.toJavaObject(jsonObject,Data.class );
// String url = "http://localhost:8007/get_image";
// paramMap.add("data[name]",image);
// PyBack pyBack = restTemplate.postForObject(url, paramMap, PyBack.class);
return Result.OK(pyback);
// return suoyou;
}
@AutoLog(value = "测试第三方接口")
@ApiOperation(value="测试第三方接口", notes="测试第三方接口")
@PostMapping(value = "/testthree")
public String testthree( String name) {
String a = name +"123";
return a;
}
附上json对象和java之间转换
https://www.cnblogs.com/ibigboy/p/11124524.html
后端远程调用接口视频
