基于Base64转码实现阿里云金融级人脸检测服务端接入教程Java code Sample

简介: 人脸核身提供服务端SDK帮助您在服务端依据被验证的人名和身份证号码,请求身份验证的用户图像信息。通常情况,测试人员可通过将本地图片上传至阿里云对象存储OSS中,然后直接获取图片路径作为参数,本文将介绍基于Base64转码,将本地图片转为Base64字符串格式的参数上传图片参数。

Step By Step

1、 开通人脸人体服务,具体可参考链接
image.png

2、获取您的真实AK信息,具体可参考链接
image.png

3、pom.xml

     <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.4.8</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>facebody20200910</artifactId>
            <version>2.0.0</version>
      </dependency>

4.金融人脸检测SDK Code Sample

import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import sun.misc.BASE64Encoder;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FaceMoney {
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "<AccessKey ID>", "<AccessKey Secret>");
        /** use STS Token
         DefaultProfile profile = DefaultProfile.getProfile(
         "<your-region-id>",           // The region ID
         "<your-access-key-id>",       // The AccessKey ID of the RAM account
         "<your-access-key-secret>",   // The AccessKey Secret of the RAM account
         "<your-sts-token>");          // STS Token
         **/
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();
        request.setSysUriPattern("/viapi/thirdparty/realperson/execServerSideVerification");
        request.setSysMethod(MethodType.POST);
        request.setSysDomain("facebody.cn-shanghai.aliyuncs.com");
        request.setSysVersion("2020-09-10");

       // request.putHeadParameter("Content-Type", "application/json");
        request.putQueryParameter("CertificateName","姓名");
        request.putQueryParameter("CertificateNumber","身份证");


        File fileA = new File("本地图片");

        String A = null;
        try {
            A = encodeImageToBase64(fileA);
        } catch (Exception e) {
            e.printStackTrace();
        }
        request.putBodyParameter("FacialPictureData",A);
        request.putQueryParameter("SceneType","server");
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ClientException e) {
            e.printStackTrace();
        }

    }
    public static String encodeImageToBase64(File file) throws Exception {
        //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
//        loggerger.info("图片的路径为:" + file.getAbsolutePath());
        InputStream in = null;
        byte[] data = null;
        //读取图片字节数组
        try {
            in = new FileInputStream(file);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
            throw new Exception("图片上传失败,请联系客服!");
        }
        //对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        String base64 = encoder.encode(data);
        return base64;//返回Base64编码过的字节数组字符串
    }

}

5、运行结果:image.png

参考链接

阿里云人脸识别Java调用示例参考

目录
相关文章
|
19天前
|
JSON Java 开发工具
Java服务端集成Google FCM推送的注意事项和实际经验
公司的app要上海外,涉及到推送功能,经过综合考虑,选择Google FCM进行消息推送。 查看一些集成博客和官方文档,看的似懂非懂,迷迷惑惑。本篇文章除了将我实际集成的经验分享出来,也会对看到的博客及其中产生的疑惑、注意事项一一评论。 从官方文档和众多博客中,你会发现Java集成FCM推送有多种实现方式,会让生产生文档很乱,不知作何选择的困惑。
46 0
|
4月前
|
机器学习/深度学习 Java 开发工具
【移花接木】OpenCV4.8 For Java 深度学习 实时人脸检测
【移花接木】OpenCV4.8 For Java 深度学习 实时人脸检测
91 0
|
2月前
|
存储 安全 Java
"Java编码魔法:揭秘图片与文件的Base64神秘转换术,让数据在指尖跳跃!"
【8月更文挑战第16天】Base64编码在Java开发中常用于将二进制数据如图片转换为ASCII字符串以便传输。编码使用64个字符及等号填充,每3字节数据编码为4个字符。Java利用`java.util.Base64`类实现此功能:读取图片或文件为字节数组后进行编码。解码时将Base64字符串还原为字节数组并写入文件。需注意编码效率降低、不提供安全性及特殊字符兼容性等问题。掌握这些技巧有助于解决Web开发中的数据传输需求。
82 4
|
2月前
|
JSON Java API
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
|
2月前
|
Java
Java 图片、文件 Base64 互转
Java 图片、文件 Base64 互转
47 0
|
4月前
|
存储 Java 数据处理
Java的Base64加密解密详解
Java的Base64加密解密详解
|
4月前
|
编解码 数据可视化 Java
Java如何进行Base64的编码(Encode)与解码(Decode)?
Java如何进行Base64的编码(Encode)与解码(Decode)?
122 1
|
4月前
|
Java
java使用多线程编写服务端与客户端文件上传程序
java使用多线程编写服务端与客户端文件上传程序
|
4月前
|
Java
java使用ServerSocket和Socket实现客户端与服务端通讯
java使用ServerSocket和Socket实现客户端与服务端通讯
|
Java 数据库 容器