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

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();}
}

相关文章:

  • 芯片生态链深度解析(一):基础材料篇——从砂砾到硅基王国的核心技术突围
  • Deeper and Wider Siamese Networks for Real-Time Visual Tracking
  • Xshell的下载
  • 技术文章:解决汇川MD500系列变频器干扰问题——GRJ9000S EMC滤波器的应用
  • QML元素 - OpacityMask
  • 【网络】:数据链路层 —— 以太网协议
  • Sumsub Java Web Demo 技术文档
  • STM32F407VET6实战:CRC校验
  • 编译原理概述
  • [前端] wang 富文本 vue3
  • PCIe Switch 问题点
  • 背包问题详解
  • 蓝牙AVRCP协议概述
  • (网络文件系统)N
  • ACM模式用Scanner和System.out超时的解决方案和原理
  • FC7300 IO 无法正常输出高低电平问题排查
  • Elasticsearch/OpenSearch 中doc_values的作用
  • 统信操作系统自定义快捷键配置音量调节功能指南
  • 第六章 进阶10 实习生的焦虑
  • AI 编程 “幻觉” 风险频发?飞算 JavaAI 硬核技术筑牢安全防线
  • 菲律宾选举委员会公布中期选举结果,马科斯阵营选情未达预期
  • 夜读丨什么样的前程值得把春天错过
  • 张家界一铁路致17人身亡,又有15岁女孩殒命,已开始加装护栏
  • 受贿1.29亿余元,黑龙江省原副省长王一新被判无期
  • 上海率先推进生物制品分段生产试点,这款国产1类创新药获批上市
  • 上海黄浦江挡潮闸工程建设指挥部成立,组成人员名单公布