本教程以apache-maven-3.8.1和dbus_sdk_1.0.3为例,指导您快速使用Java应用完成加密身份认证API的调用。
前提条件
使用Java 1.7及以上版本,您可以通过命令java -version查看Java版本。
请确保您已安装IntelliJ IDE和Maven,并配置了Maven环境变量。
操作步骤
打开IntelliJ IDE,单击New Project新建项目,选择Maven,单击Next进入下一步。
填写项目名称Name和存储位置Location,本文项目名称以dbus_Demo为例,编辑完成单击Finish。
项目创建完成后,需修改Maven和终端地址。
在顶部导航栏中,单击File > Setting,进入设置页面。
在Setting页面,左侧列表中选择Build, Execution, Deployment > Build Tools > Maven。
选中User settings file后的Overrided对用户设置文件地址进行重写,该地址为您本地解压的Maven文件中的setting.xml地址,修改完成单击Apply和OK,进行配置的应用和保存。
在左侧列表中选中Tools > Terminal,修改终端的Shell path为您的本地路径,修改完成单击Apply和OK,进行配置的应用和保存。
下载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
在项目列表中,单击pom.xml添加以下依赖。
<dependencies> <dependency> <groupId>com.aliyun.dataq.service.dbus</groupId> <artifactId>dbus-sdk</artifactId> <version>1.0.3-SNAPSHOT</version> </dependency> </dependencies>
单击页面右侧的M,弹出Maven页面,单击刷新图标,项目dbus_Demo文件下出现Dependencies依赖项,则依赖成功。
以上内容配置完成后,在dbus_Demo项目的Java文件夹下创建Java class文件,命名为Demo。
在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); } }
编辑完成后,单击鼠标右键选择Run 'Demo.main()'运行代码,等待运行完成,返回目标API的调用结果。