此java文章是基本聚合数据(https://www.juhe.cn/)证件识别接口来演示,基本HTTP POST请求上传图片并接收JSON数据来处理。
使用前你需要通过https://www.juhe.cn/docs/api/id/153申请一个名片识别的appkey
1.支持的证件类型清单
请求地址:http://api2.juheapi.com/cardrecon/supportlist?key=您申请的appkey
此接口可通过GET请求得到结果,java网络请求有HttpClient相关工具包及HttpURLConnection相关的包等,这里用的是HttpClient,需要先导包,如果用maven话会更方便直接把:
<dependency><groupid>org.apache.httpcomponents</groupid>
<artifactid>httpmime</artifactid>
<version>4.3.6</version>
</dependency>
<dependency>
<groupid>org.apache.httpcomponents</groupid>
<artifactid>httpclient</artifactid>
<version>4.4.1</version>
</dependency>
复制到配置文件 pom.xml
请求代码如下:
public static String get() throws IOException {
// 创建HttpClient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String result = null;
try {
HttpGet httpGet = new HttpGet("http://api2.juheapi.com/cardrecon/supportlist?key="+ appKey);
// 执行网络请求
response = httpClient.execute(httpGet);
// 获取请求实体
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
// ConverStreamToString是下面写的一个方法是把网络请求的字节流转换为utf8的字符串
result = ConvertStreamToString(resEntity.getContent(), "UTF-8");
}
EntityUtils.consume(resEntity);
} catch (Exception e) {
} finally {
// 关闭请求
response.close();
httpClient.close();
}
// 得到的是JSON类型的数据需要第三方解析JSON的jar包来解析
return result;
}
2.证件图片识别
请求地址:http://api2.juheapi.com/cardrecon/upload
// 此方法是POST请求上传的参数中包含本地图片信息File类型
public static String post(String type, File file) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String result = null;
// HttpClient请求的相关设置,可以不用配置,用默认的参数,这里设置连接和超时时长(毫秒)
RequestConfig config = RequestConfig.custom().setConnectTimeout(30000).setSocketTimeout(30000).build();
try {
HttpPost httppost = new HttpPost("http://api2.juheapi.com/cardrecon/upload");
// FileBody封装File类型的参数
FileBody bin = new FileBody(file);
// StringBody封装String类型的参数
StringBody keyBody = new StringBody(key, ContentType.TEXT_PLAIN);
StringBody typeBody = new StringBody(type, ContentType.TEXT_PLAIN);
// addPart将参数传入,并指定参数名称
HttpEntity reqEntity = MultipartEntityBuilder.create()
.addPart("pic", bin).addPart("key", keyBody)
.addPart("cardType", typeBody).build();
httppost.setEntity(reqEntity);
httppost.setConfig(config);
// 执行网络请求并返回结果
response = httpClient.execute(httppost);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
result = ConvertStreamToString(resEntity.getContent(), "UTF-8");
}
EntityUtils.consume(resEntity);
} finally {
response.close();
httpClient.close();
}
// 得到的是JSON类型的数据需要第三方解析JSON的jar包来解析
return result;
}
// 此方法是把传进的字节流转化为相应的字符串并返回,此方法一般在网络请求中用到
public static String ConvertStreamToString(InputStream is, String charset)
throws Exception {
StringBuilder sb = new StringBuilder();
try (InputStreamReader inputStreamReader = new InputStreamReader(is,charset)) {
try (BufferedReader reader = new BufferedReader(inputStreamReader)) {
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\r\n");
}
}
}
return sb.toString();
}
相关推荐
腾讯AI的身份证识别服务能够自动识别身份证正反两面的图像,然后通过OCR(Optical Character Recognition)技术将文字信息提取出来,极大地提高了信息录入的效率和准确性。 3. **人脸识别**:人脸识别技术是基于人...
至于"接口demo",它可能是一个完整的示例项目,展示了如何在Java环境中设置、调用人脸识别接口并处理响应。这个压缩包中的"人脸识别demo"很可能包含了以下部分: 1. 配置文件:存储API密钥和可能的配置选项。 2. ...
识别身份证正反面的信息需要对这两面的图像进行处理和解析。 6. **图像预处理**:在进行OCR识别前,通常需要对身份证的图像进行预处理,如灰度化、二值化、去噪等,以提高文字识别的准确率。 7. **文字定位与识别*...
;;eoLink11er-API_Shop_OCR-银行卡识别_API接口_Java调用示例代码.pdf
;;eoLink11er-API_Shop_OCR-银行卡识别_API接口_Java调用示例代码.docx
导入SDK后,我们就可以编写代码来调用百度的身份证识别接口。首先初始化AipOcr客户端,传入应用的APP_ID、API_KEY和SECRET_KEY: ```java AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY); ``` 然后,...
通过java代码使用yolov3的示例代码,yolov3是先进的图片内物品识别的神经网络。由于目前通过jvm运行神经网络效率较低,项目的示例意义大于实用意义。 此项目参考了yolov2的java项目:...
在本文中,我们将深入探讨如何使用Java调用百度的图像识别接口,这是一个强大的工具,能够对图像进行物体和场景的智能识别。以下是一系列详细步骤和技术要点: 1. **创建百度AI账号并获取API Key和Secret Key**: ...
此外,如果需要验证身份证号码的合法性,可以使用Java编写算法检查其校验码是否正确,这涉及到对身份证号码的数学计算和模运算。 总结来说,Java可以通过第三方库实现IP地址的地理位置查询,同时可以通过身份证号码...
在这个Java RPC调用示例中,我们将探讨RPC的基本概念、实现机制以及如何在Java中创建一个简单的RPC框架。 首先,RPC的核心思想是将远程调用过程透明化,使得开发者可以像调用本地方法一样调用远程服务。这种抽象...
在这个例子中,`recognizeIdCard`方法接收身份证图片的Base64编码和证件面(正面或背面),然后调用百度API获取识别结果。注意,实际项目中需要处理异常和错误情况。 最后,你需要在项目中集成这个类。例如,你可以...
;;eoLink11er-API_Shop_植物大全_API接口_Java调用示例代码.docx
;;eoLink11er-API_Shop_植物大全_API接口_Java调用示例代码.pdf
;;eoLink11er-API_Shop_电视节目_API接口_Java调用示例代码.pdf
"Java调用Restful API接口的方式" Java调用Restful API接口是Java开发中非常重要的一部分,了解Java调用Restful API接口的方式可以帮助开发者更好地理解和使用相关技术。本文将详细介绍Java调用Restful API接口的...
;;eoLink11er-API_Shop_《机动车合格证》二维码解码_API接口_Java调用示例代码.pdf
;;eoLink11er-API_Shop_《机动车合格证》二维码解码_API接口_Java调用示例代码.docx
为了使示例可重复运行,示例中还包含了一段代码用于在每次运行后删除目标表,即调用`execStatement()`执行`DROP TABLE`命令。 6. **注意点**: - 在使用Kettle API时,通常需要初始化环境,如示例中的`EnvUtil....
;;eoLink11er-API_Shop_银行卡信息查询(含归属地)_API接口_Java调用示例代码.docx
;;eoLink11er-API_Shop_银行卡信息查询(含归属地)_API接口_Java调用示例代码.pdf