为啥要用后端调用第三方接口
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
后端远程调用接口视频