java 证件识别_证件识别接口JAVA调用示例

这篇博客展示了如何使用Java的HttpClient库调用聚合数据API进行证件识别。首先需要申请一个appkey,然后通过GET请求获取支持的证件类型清单,接着通过POST请求上传证件图片并接收JSON响应。代码中包括了HTTP请求的设置、文件上传和结果的JSON解析。
摘要由CSDN通过智能技术生成

此篇java文章是基本聚合数据(http://www.juhe.cn)-----证件识别接口来演示,基本HTTP POST请求上传图片并接收JSON数据来处理,其他与上传图片相关的接口请求可参考此篇文章。

使用前你需要:

①:通过 http://www.juhe.cn/docs/api/id/153申请一个名片识别的appkey

1.支持的证件类型清单

此接口可通过GET请求得到结果,java网络请求有HttpClient相关工具包及HttpURLConnection相关的包等,这里用的是HttpClient,需要先导包,如果用maven话会更方便直接把:

org.apache.httpcomponents

httpmime

4.3.6

org.apache.httpcomponents

httpclient

4.4.1

复制到配置文件 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.证件图片识别

// 此方法是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();

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值