加密身份认证-SDK调用教程

本教程以apache-maven-3.8.1和dbus_sdk_1.0.3为例,指导您快速使用Java应用完成加密身份认证API的调用。

前提条件

  • 使用Java 1.7及以上版本,您可以通过命令java -version查看Java版本。

  • 请确保您已安装IntelliJ IDE和Maven,并配置了Maven环境变量。

操作步骤

  1. 打开IntelliJ IDE,单击New Project新建项目,选择Maven,单击Next进入下一步。

    image

  2. 填写项目名称Name和存储位置Location,本文项目名称以dbus_Demo为例,编辑完成单击Finish

    image

  3. 项目创建完成后,需修改Maven和终端地址。

    1. 在顶部导航栏中,单击File > Setting,进入设置页面

    2. Setting页面,左侧列表中选择Build, Execution, Deployment > Build Tools > Maven

    3. 选中User settings file后的Overrided对用户设置文件地址进行重写,该地址为您本地解压的Maven文件中的setting.xml地址,修改完成单击ApplyOK,进行配置的应用保存

      image

    4. 在左侧列表中选中Tools > Terminal,修改终端的Shell path为您的本地路径,修改完成单击ApplyOK,进行配置的应用保存

      image

  4. 下载dbus SDK到本地,在IntelliJ IDE页面底部,单击终端,执行以下命令将dbus SDK安装到本地仓库,页面出现“BUILD SUCCESS”,则安装成功。

    mvn install:install-file -DgroupId=com.aliyun.dataq.service.dbus -DartifactId=dbus-sdk -Dversion=1.0.3-SNAPSHOT -Dpackaging=jar -Dfile=${dbus SDK安装包所在的本地路径}/dbus-sdk-1.0.3.jar

    image

  5. 在项目列表中,单击pom.xml添加以下依赖。

    <dependencies>
        <dependency>
            <groupId>com.aliyun.dataq.service.dbus</groupId>
            <artifactId>dbus-sdk</artifactId>
            <version>1.0.3-SNAPSHOT</version>
        </dependency>
    </dependencies>

    image

  6. 单击页面右侧的M,弹出Maven页面,单击刷新图标,项目dbus_Demo文件下出现Dependencies依赖项,则依赖成功。

    image

  7. 以上内容配置完成后,在dbus_Demo项目的Java文件夹下创建Java class文件,命名为Demo。

    image

  8. 在Demo.java文件中,将以下示例代码进行复制,并根据目标API的调用信息,修改endpoint、path、AppCode、AppKey以及AppSecret。API的调用信息获取方式,请参见获取API调用信息

    说明

    API的访问路径由endpoint和path组成。

    import com.alibaba.cosmo.remote.httpclient.HttpMethod;
    import com.alibaba.fastjson.JSONObject;
    import com.aliyun.dataq.service.dbus.signature.DaasClient;
    import com.aliyun.dataq.service.dbus.signature.DataQService;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.mime.MultipartEntityBuilder;
    import java.io.File;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class Demo {
        public static void main(String[] args) {
            //目标API的地址
            String endpoint = "https://dataq.aliyuncs.com";
            //目标API的路径
            String path = "/yourworkspaceCode/yourAppCode/APIPath";
            //已获得目标API调用授权的应用Code、AppKey及AppSecret
            String appCode = "yourAppCode";
            String AppKey = "yourAppKey";
            String AppSecret = "yourAppSecret";
            DataQService.Builder builder = new DataQService.Builder();
            builder.setPath(path);
            builder.setModuleName(appCode);
            builder.setAccessKeyId(AppKey);
            builder.setAccessKeySecret(AppSecret);
    
            //添加请求Header参数
            Map<String, Object> headerMap = new HashMap<>();
            headerMap.put("Accept", "application/json");
            headerMap.put("Content-Type", "application/json");
            headerMap.put("h1", "");
            headerMap.put("h2", "");
            builder.addHeader(headerMap);
    
            //添加QueryParam参数
            Map<String, Object> queryParam = new HashMap<>();
            queryParam.put("p1", "");
            queryParam.put("p2", "");
            builder.addQueryParam(queryParam);
    
            //添加RequestBody参数
            Map<String, Object> map = new HashMap<>();
            map.put("b1", "");
            List<String> values = Arrays.asList("v1");
            map.put("b2", values);
            builder.setRequestBody(new JSONObject(map));
    
            //文件上传
            MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create()
                    .addTextBody("k1","v1")
                    .addTextBody("k2","v2")
                    .addBinaryBody("file", new File("/demo/2602780.txt"),  ContentType.APPLICATION_OCTET_STREAM, "2602780.txt");
            builder.setMultipartEntityBuilder(multipartEntityBuilder);
    
            //设置请求方法
            DataQService dataQService = builder.setHttpMethod(HttpMethod.GET).build();
    
            //初始化请求客户端
            DaasClient client = new DaasClient(endpoint);
    
            //发送请求
            Object httpResponse = client.invoke(dataQService, 1000000, 30);
            System.out.println(httpResponse);
        }
    }

    image..png

  9. 编辑完成后,单击鼠标右键选择Run 'Demo.main()'运行代码,等待运行完成,返回目标API的调用结果

    image