springboot项目集成百度api:

实现证件及票据识别.

项目结构:

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.ssj</groupId><artifactId>baiduapi</artifactId><version>0.0.1-SNAPSHOT</version><name>baiduapi</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.46</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.5</version></dependency><!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.12</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.4.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

controller

package com.ssj.baiduapi.xaingmu;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ssj.baiduapi.xaingmu.config.AuthService;
import com.ssj.baiduapi.xaingmu.config.Currency;
import com.ssj.baiduapi.xaingmu.config.Directional;
import org.apache.commons.lang3.StringUtils;import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import java.io.IOException;
import java.net.URISyntaxException;@RestController
public class BaiDUController {@RequestMapping(value = "baiDuApi", method = RequestMethod.POST)public JSONObject baiDuApi(@RequestBody String data) throws IOException, URISyntaxException {JSONObject json = new JSONObject();String path = "";String type = "";// front:身份证含照片的一面;back:身份证带国徽的一面String idCardSide = "";if (StringUtils.isNotBlank(data)) {JSONObject jsonObject = JSON.parseObject(data);path = jsonObject.getString("path");type = jsonObject.getString("type");idCardSide = jsonObject.getString("idCardSide");}Directional directional = new Directional();String token = directional.takeString(type,idCardSide);if (token.equals("")){json.put("json","类型传输不正确");return json;}else {AuthService authService = new AuthService();String auth = authService.getAuth();token+="access_token="+auth;}Currency currency = new Currency();String str = currency.checkFile(path, token);json.put("json",str);return json;}}

工具类

Directional

package com.ssj.baiduapi.xaingmu.config;public class Directional {public static String takeString(String tag,String idCardSide){String DECS_URL = "";switch (tag){case "1" :// 身份证DECS_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?id_card_side="+idCardSide+"&";break;case "2" :// 营业执照DECS_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/business_license?";break;case "3":// 通用票据识别DECS_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/receipt?";break;case "4":// 增值税发票DECS_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/vat_invoice?";break;case "5":// 定额发票DECS_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice?";break;default:DECS_URL = "";}return DECS_URL;}}

AuthService:

package com.ssj.baiduapi.xaingmu.config;import com.alibaba.fastjson.JSONObject;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;public class AuthService {public static String getAuth() {// 官网获取的 API Key 更新为你注册的apikeyString clientId = "*****";// 官网获取的 Secret Key 更新为你注册的Secret KeyString clientSecret = "*****";return getAuth(clientId, clientSecret);}/*** 获取API访问token 该token有一定的有效期,token要自行管理,当失效时需要重新获取.** @param ak*            - 百度云官网获取的 API Key* @param sk*            - 百度云官网获取的 Securet Key* @return assess_token 示例*         "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"*/private static String getAuth(String ak, String sk) {// 获取token地址String authHost = "https://aip.baidubce.com/oauth/2.0/token?";String getAccessTokenUrl = authHost// 1. grant_type为固定参敄1¤7+ "grant_type=client_credentials"// 2. 官网获取的 API Key+ "&client_id=" + ak// 3. 官网获取的 Secret Key+ "&client_secret=" + sk;try {URL realUrl = new URL(getAccessTokenUrl);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();connection.setRequestMethod("GET");connection.connect();// 获取响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历响应头for (String key : map.keySet()) {System.err.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));StringBuilder result = new StringBuilder();String line;while ((line = in.readLine()) != null) {result.append(line);}/*** 返回结果示例*/System.err.println("result:" + result);JSONObject jsonObject = JSONObject.parseObject(result.toString());return jsonObject.getString("access_token");} catch (Exception e) {System.err.printf("获取token失败");e.printStackTrace(System.err);}return null;}
}

Currency:

package com.ssj.baiduapi.xaingmu.config;import com.ssj.baiduapi.config.BaseImg64;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;public class Currency {public static String checkFile(String path,String token) throws URISyntaxException, IOException {File file = new File(path);if (!file.exists()) {throw new NullPointerException("未找到图片");}String image = BaseImg64.getImageStrFromPath(path);String param = "image=" + image;return post(param,token);}private static String post(String param,String token) throws URISyntaxException, IOException {HttpClient httpClient = new DefaultHttpClient();HttpPost post = new HttpPost();URI url = new URI(token);post.setURI(url);post.setHeader("Content-Type", "application/x-www-form-urlencoded");StringEntity entity = new StringEntity(param);post.setEntity(entity);HttpResponse response = httpClient.execute(post);System.out.println(response.toString());if (response.getStatusLine().getStatusCode() == 200) {String str;try {str = EntityUtils.toString(response.getEntity());return str;} catch (Exception e) {e.printStackTrace();return null;}}return null;}
}

文字识别同理,修改参数即可

百度api证件,票据识别相关推荐

  1. Python调用百度API进行身份证识别

    目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...

  2. 树莓派+百度api实现人脸识别

    title: 树莓派+百度api实现人脸识别 tags: 树莓派 date: 2018-5-31 20:06:00 --- 树莓派对接百度api 我以前玩安卓的时候一直用的讯飞的平台和api,对于百度 ...

  3. 对接百度api之银行卡识别

    对接百度api之银行卡识别 1. 成为开发者 2. 创建应用 3. 获取密钥 4. 配置图像识别sdk 5. 调用银行卡识别接口 详情步骤参考链接 1. 成为开发者 三步完成账号的基本注册与认证: S ...

  4. 百度api做文字识别

    利用百度api进行文字识别 文章目录 利用百度api进行文字识别 前言 一.百度文字识别? 二.使用方法 1.参考官方文档自己写 2.我自己的代码记录 三.使用情况 当然也有一些问题: 四.总结 注意 ...

  5. 微信小程序编程(1)——使用百度API编写文字识别小程序

    编写思路 要使用百度等第三方API,我们得使用微信小程序提供的wx.request来向第三方平台发起请求,我们看到wx.request的参数属性里面url是必填项,接着我们打开和百度AI平台里面的通用 ...

  6. python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜

    https://ai.baidu.com/docs#/Face-Detect/top 这个是百度人脸识别api 参考博客:https://blog.csdn.net/qq_38412868/artic ...

  7. 利用百度api实现ocr识别发票

    一.准备工作 1.百度智能云申请一个文字识别的api 里面每个月有1000次调用测试应该够用 2.一个springboot项目 二.主要代码 ①.pom依赖引入 <dependency>& ...

  8. opencv+python机读卡识别(四)百度API进行数字识别

    2019独角兽企业重金招聘Python工程师标准>>> 第一部分预处理:https://my.oschina.net/u/3268732/blog/1236298 第二部分图像切割: ...

  9. python实战篇(五)---百度api实现车型识别

    十二年来,有笑泪,有阴晴,相伴一场,人来人往,只是日常.--蔡康永 前言 api全称为应用程序接口,说白了就是别人写好了一个可实现功能的函数接口,我们可以直接调用来实现功能,今天,我们一起来学习,用百 ...

最新文章

  1. linux 分区下的两主要硬盘的意思
  2. linux块设备驱动(一)——块设备概念介绍
  3. 【转】Android检查手机是否被root
  4. wxWidgets:wxFTP类用法
  5. java怎么设有滚动的标签,html标签overflow属性和javascript实现div标签滚动
  6. mysql dataset_数据库 dataset database
  7. fixed 定位 苹果手机输入框触发时内容全部隐藏
  8. 亚信安全与安徽电信共创“云网融合”安全新局面
  9. html之文档的头部和元数据定义(上)
  10. cocos2d-x for wp8 设置横竖屏
  11. js控制文件拖拽,获取拖拽内容。
  12. 排序算法专题-基数排序
  13. java--小示例:-3-可以作为测试内容使用
  14. 应用商店打开服务器错误,教你应用商店出现错误的修复方法
  15. php for求合,怎么用PHP for循环求1到100的和
  16. 2022爱分析·国央企数字化实践报告
  17. 搜狗浏览器收藏夹在什么位置?搜狗浏览器收藏夹路径在哪?
  18. 阿里云香港服务器和大陆服务器区别及选择
  19. SpringCloud 单Eureka简单例子consumer-provider
  20. pandas学习笔记-DataFrame(2)

热门文章

  1. HTML学习之路-03HTML表格、table布局
  2. SpringCloud微服务项目搭建
  3. AutoML在计算机视觉领域的能与不能
  4. HEF4051B 8通道模拟多路复用器/解复用器
  5. linux | setfacl - - 细分文件权限
  6. java输入输出换行程序_java文件输出换行问题。
  7. 基于微信小程序的民宿短租系统小程序
  8. 整洁代码之道 12 迭进 Emergence
  9. 计算机的数学发展史论文,数学发展史小论文.docx
  10. android导入项目错误处理