java调用百度AI识别身份证照片获取信息
- 一、前期准备
- 1、创建账号
- 2、获得API Key 和Secret Key
- 二、使用步骤
- 1、依赖
- 2、代码
一、前期准备
1、创建账号
2、获得API Key 和Secret Key
二、使用步骤
http调用工具用了hutool工具库
1、依赖
<!--百度身份证识别AI依赖-->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
<!--工具依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
2、代码
public static final String API_KEY = "xxxxxxx";
public static final String SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
/**
* 从用户的AK,SK生成鉴权签名(Access Token)
*/
String getAccessToken() throws IOException {
Map data = new HashMap();
data.put("grant_type", "client_credentials");
data.put("client_id", API_KEY);
data.put("client_secret", SECRET_KEY);
String body = HttpRequest.post("https://aip.baidubce.com/oauth/2.0/token")
.header("Content-Type", "application/x-www-form-urlencoded")
.form(data)
.execute()
.body();
String accessToken = String.valueOf(JSONObject.parseObject(body).get("access_token"));
return accessToken;
}
/**
* 获取文件base64编码
*
* @param path 文件路径
* @param urlEncode 如果Content-Type是application/x-www-form-urlencoded时,传true
* @return base64编码信息,不带文件头
* @throws IOException IO异常
*/
String getFileContentAsBase64(String path, boolean urlEncode) throws IOException {
byte[] b = Files.readAllBytes(Paths.get(path));
String base64 = Base64.getEncoder().encodeToString(b);
if (urlEncode) {
base64 = URLEncoder.encode(base64, "utf-8");
}
return base64;
}
@Test
void contextLoads() throws IOException {
String path = "C:/xxxxxxxx/sfz.JPG";
//设置请求头
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/x-www-form-urlencoded");
headers.put("Accept", "application/json");
//入参
Map data = new HashMap();
data.put("id_card_side", "front");//正面
//data.put("id_card_side", "back");//反面
data.put("image", getFileContentAsBase64(path, false));
//调用识别接口
String body = HttpRequest.post("https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + getAccessToken())
.addHeaders(headers)
.form(data)
.execute()
.body();
Map map = JSONObject.parseObject(body, Map.class);
System.out.println(map.toString());
}
- 坚持不懈,才能登上成功的巅峰。每一次努力都是一份积累,每一次拼搏都是一个契机。在追逐梦想的路上,不要停下脚步,因为只有持之以恒,才能收获辉煌的成就。
- 拥有梦想是第一步,实现梦想是下定决心。不要被困难吓倒,不要被挫折击倒。勇敢面对困境,坚定前行的步伐,相信自己,勇往直前,终将创造属于自己的传奇。
- 人生如修行,总有风雨雷电。但只要心怀希望,执着追求,越是曲折越要坚定信念。失去过的梦想、受过的伤害,都是磨砺内心的机会,将坎坷化作阶梯,走出一条光明之路。
- 成功不是偶然,而是每一次坚持的积累。不论遇到多大的困难和挑战,都不要轻言放弃。相信自己的力量,勇敢面对挑战,勤奋耕耘,每一份付出都将开启通往成功的大门。
- 人生没有白走的路,每一步都是成长的印记。无论遭遇怎样的逆境,都要保持乐观与坚韧,给自己一个机会,给梦想一个舞台。记住,坚持与执着是通往光明的钥匙,不要放弃,勇往直前,胜利必将属于你。