当前位置: 首页 > backend >正文

Java百度身份证识别接口实现【配置即用】

第一步:申请百度 OCR 身份证识别 API

注册百度智能云:https://cloud.baidu.com/

开通 身份证识别 OCR 服务 【直接搜索】

创建应用,获取:

API Key

Secret Key

第二步:Java依赖

<dependencies><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.3</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.10</version></dependency>
</dependencies>

第三步:Java程序

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import okhttp3.*;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Base64;public class IdCardRecognizer {private static final String API_KEY = "你的API_KEY";private static final String SECRET_KEY = "你的SECRET_KEY";private static final String OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard";public static void main(String[] args) throws IOException {String accessToken = getAccessToken();File imageFile = new File("idcard.jpg"); // 替换为你的图片路径String base64Image = Base64.getEncoder().encodeToString(Files.readAllBytes(imageFile.toPath()));OkHttpClient client = new OkHttpClient();RequestBody body = new FormBody.Builder().add("image", base64Image).add("id_card_side", "front") // "front" 正面,"back" 反面.build();Request request = new Request.Builder().url(OCR_URL + "?access_token=" + accessToken).post(body).addHeader("Content-Type", "application/x-www-form-urlencoded").build();Response response = client.newCall(request).execute();String json = response.body().string();JsonObject result = JsonParser.parseString(json).getAsJsonObject().getAsJsonObject("words_result");System.out.println("姓名: " + result.getAsJsonObject("姓名").get("words").getAsString());System.out.println("性别: " + result.getAsJsonObject("性别").get("words").getAsString());System.out.println("民族: " + result.getAsJsonObject("民族").get("words").getAsString());System.out.println("出生: " + result.getAsJsonObject("出生").get("words").getAsString());System.out.println("住址: " + result.getAsJsonObject("住址").get("words").getAsString());System.out.println("公民身份号码: " + result.getAsJsonObject("公民身份号码").get("words").getAsString());}// 获取AccessToken(可缓存一天)private static String getAccessToken() throws IOException {OkHttpClient client = new OkHttpClient();String url = "https://aip.baidubce.com/oauth/2.0/token"+ "?grant_type=client_credentials"+ "&client_id=" + API_KEY+ "&client_secret=" + SECRET_KEY;Request request = new Request.Builder().url(url).build();Response response = client.newCall(request).execute();String json = response.body().string();JsonObject jsonObject = JsonParser.parseString(json).getAsJsonObject();return jsonObject.get("access_token").getAsString();}
}
http://www.xdnf.cn/news/6662.html

相关文章:

  • 国芯思辰| 轮速传感器AH741对标TLE7471应用于汽车车轮速度感应
  • Sigmoid与Softmax:从二分类到多分类的深度解析
  • Flask 是否使用类似 Spring Boot 的核心注解机制
  • 向量和矩阵范数
  • WHAT - 缓存命中 Cache Hit 和缓存未命中 Cache Miss
  • 容器化-k8s-介绍及下载安装教程
  • deepseek问答记录:请讲解一下hugingface transformers中的AutoProcessor
  • Unity3D Overdraw性能优化详解
  • YOLOv2目标检测算法:速度与精度的平衡之道
  • 中exec()函数因$imagePath参数导致的命令注入漏洞
  • 无缝部署您的应用程序:将 Jenkins Pipelines 与 ArgoCD 集成
  • 从RPA项目说说RPC和MQ的使用。
  • 大模型相关技术综述
  • 蒟蒻编程日志
  • 高速光耦在通信行业的应用(五) | 5Mbps通信光耦的特性
  • RabbitMQ 扇形交换器工作原理详解
  • 校园社区小程序源码解析
  • 【打破信息差】萌新认识与入门算法竞赛
  • 12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
  • Python训练打卡Day25
  • 算法基础 -- 小根堆构建的两种方式:上浮法与下沉法
  • Node打包报错:Error: error:0308010C:digital envelope routines::unsupported
  • rk3576 gstreamer opencv
  • c++ 类的语法4
  • 我用 Appuploader绕过 Mac,成功把 iOS 应用上线了 App Store
  • 51单片机串口
  • 现场血案:Kafka CRC 异常
  • HANA数据库死锁
  • PYTHON训练营DAY27
  • qt5.14.2 opencv调用摄像头显示在label