`
喵喵大神
  • 浏览: 37395 次
文章分类
社区版块
存档分类
最新评论

身份证证件识别接口编写的JAVA调用示例

 
阅读更多

此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();  
    }  
分享到:
评论

相关推荐

    java调用 人脸识别接口demo

    至于"接口demo",它可能是一个完整的示例项目,展示了如何在Java环境中设置、调用人脸识别接口并处理响应。这个压缩包中的"人脸识别demo"很可能包含了以下部分: 1. 配置文件:存储API密钥和可能的配置选项。 2. ...

    Java调用百度图像识别接口

    在本文中,我们将深入探讨如何使用Java调用百度的图像识别接口,这是一个强大的工具,能够对图像进行物体和场景的智能识别。以下是一系列详细步骤和技术要点: 1. **创建百度AI账号并获取API Key和Secret Key**: ...

    Java RPC调用示例

    在这个Java RPC调用示例中,我们将探讨RPC的基本概念、实现机制以及如何在Java中创建一个简单的RPC框架。 首先,RPC的核心思想是将远程调用过程透明化,使得开发者可以像调用本地方法一样调用远程服务。这种抽象...

    Java身份证识别接口封装

    在这个例子中,`recognizeIdCard`方法接收身份证图片的Base64编码和证件面(正面或背面),然后调用百度API获取识别结果。注意,实际项目中需要处理异常和错误情况。 最后,你需要在项目中集成这个类。例如,你可以...

    eoLinker-API-Shop-OCR-车牌识别-API接口-Java调用示例代码.docx

    Java调用示例代码展示了如何与这个API进行交互,以完成车牌识别的功能。 首先,我们需要了解API的基本使用流程。在调用eoLinker的车牌识别API之前,用户需要通过指定的链接...

    浅谈java调用Restful API接口的方式

    "Java调用Restful API接口的方式" Java调用Restful API接口是Java开发中非常重要的一部分,了解Java调用Restful API接口的方式可以帮助开发者更好地理解和使用相关技术。本文将详细介绍Java调用Restful API接口的...

    java调用soap接口案例

    Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本案例主要关注如何使用Java来实现SOAP请求并获取响应,具体我们...

    腾讯AI身份证人脸识别JAVA例子

    这个“腾讯AI身份证人脸识别JAVA例子”就是一个很好的示例,展示了如何利用Java编程语言与腾讯的AI接口进行交互,实现身份证照片的人脸识别功能。下面将详细阐述相关知识点。 首先,人脸识别是一种生物特征识别技术...

    JAVA中医舌诊接口使用示例代码,JAVA舌象图特征人工智能识别代码,JAVA实现舌象特征检测与识别

    JAVA中医舌诊接口使用示例代码,JAVA舌象图特征人工智能识别代码。检测图像中的舌象,并提取出舌体区域,识别舌象特征属性描述,基于舌象特征辨识体质健康状态、按性别和年龄健康指导。先舌诊辨识体质,按年龄、性别...

    DELPHI 7 调用 JAVA 接口

    5. **编写Delphi代码**:在Delphi 7中创建一个新的单元,导入生成的JNI头文件,并实现调用Java接口的方法。Delphi代码会包含JNI函数调用,如`FindClass`, `GetMethodID`, `NewGlobalRef`, `CallStaticObjectMethod`...

    Java身份证阅读器实例(华旭)

    8. **示例代码**:`IcDemo`可能是包含上述步骤的Java程序,它演示了如何与华旭身份证阅读器进行交互,开发者可以参考这个示例来构建自己的应用。 请注意,由于具体实现细节取决于华旭提供的DLL和相关文档,以上步骤...

    java调用.asmx详细实例

    JAVA调用.asmx详细实例,应用于java web 工程中。很细致哟

    阿里云 身份证实名认证 API接口调用案例

    身份证实名认证_身份证二要素一致性验证_身份证实名核验

    C#调用Java接口演示

    本示例主要探讨的是如何使用C#调用Java接口,实现不同编程语言之间的交互。C#和Java都是广泛应用的编程语言,它们各自拥有丰富的库和生态系统,但有时需要在两者之间建立桥梁,以利用各自的优点。本文将详细介绍这一...

    证件识别_ocr_代码_Android_Java_Demo

    本项目"证件识别_ocr_代码_Android_Java_Demo"提供了一个示例,帮助开发者了解如何在Android平台上实现身份证等证件的文字识别功能。 首先,OCR技术的核心是利用算法和模型来识别图像中的文字,将图像转换成可编辑...

    java调用SDK版pdftranspro示例

    其SDK版通过Java调用SDK方式仅需三行代码集成pdf文档转换功能,可返回转换文本,也提供 pdf文档截取合并等实用的 pdf 编辑功能接口。 此示例基于32 位jre 版本。如如果是64位jre,需替换pdfparser_1.dll、pdfparser_...

    java调用C#接口及所涉及到的架包

    本文将深入探讨如何在Java中调用C#接口,以及涉及的相关技术栈。 1. **Java与C#的互操作性** Java和C#虽然都是高级编程语言,但它们属于不同的生态系统。为了实现跨平台交互,通常采用两种主要方式:Web服务(如...

    Java程序调用MATLAB接口

    Java程序调用MATLAB接口 Java 程序调用 MATLAB 接口是 Java 和 MATLAB 之间的交互接口,允许 Java 程序调用 MATLAB 的函数和方法。本文将详细介绍 Java 程序调用 MATLAB 接口的注意事项、环境安装、MATLAB 如何生成...

Global site tag (gtag.js) - Google Analytics