BaiduController.java 1.77 KB
package com.sincre.springboot.controller;


import com.alibaba.fastjson.JSON;
import com.sincre.springboot.ApiModel.BaiduResult;
import com.sincre.springboot.common.ServerResponse;
import com.sincre.springboot.utils.ApiHelper;
import com.sincre.springboot.utils.CacheHelper;
import com.sincre.springboot.utils.ResultUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping(value = "/Baidu/*")
@Api(tags = "百度云服务API调用")
public class BaiduController {

    @ApiOperation("根据上传的图片进行切图")
    @ApiImplicitParam(name = "imgUrl",value = "图片地址url",required = true)
    @PostMapping("cutPicture")
    public ServerResponse cutPicture( String imgUrl) {
        // 请求url
        String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general";

        String param = imgUrl;
        // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
        String accessToken = CacheHelper.getBaiDuToken();

        String postToken = "?access_token=" + accessToken;

        Map<String, String> headMap = new HashMap<>();
        headMap.put("Content-Type", "application/x-www-form-urlencoded");

        Map<String,Object> body = new HashMap<>();
        body.put("url",param);

        String result = ApiHelper.doPost(url+postToken,headMap, body);

        BaiduResult baiduResult = JSON.parseObject(result, BaiduResult.class);

        return ResultUtils.getInstance().returnResult_Baidu(baiduResult,result);
    }
}