Java服务端SDK集成
IClientProfile是与阿里云验证码服务端API交互的接口,所有SDK的操作都需要通过IClientProfile完成。本文介绍如何在Java服务端集成SDK。
前提条件
已为您的阿里云账号创建AccessKey。有关创建AccessKey的详细内容,请参见获取AccessKey。
已从阿里云验证码控制台下载Java服务端SDK包。
服务端开发环境为J2SE Development Kit (JDK) 1.5或以上版本。
安装SDK
在解压的SDK包中,找到aliyun-java-sdk-core-2.2.5.jar和aliyun-java-sdk-afs.jar文件。
将这两个jar包导入您的服务端工程中。
例如,在Eclipse中,右键单击工程,选择Properties>Java Build Path>Libraries>Add External JARs,选择并添加这两个jar包。
添加成功后,您就可以在您的服务端工程中使用阿里云验证码的Java SDK。
若为Maven的方式导入,请在pom.xml文件中导入以下依赖。
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.13</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-afs</artifactId> <version>1.0.1</version> </dependency>
注意事项
与阿里云验证码服务端SDK相关的类都在com.aliyuncs.IAcsClient包中。
SDK调用接口的默认连接超时时间是3秒,读取超时时间是80秒。您可以调用带有connectTimeout和readTimeout的构造方法,来自定义设置SDK调用接口的连接超时时间和读取超时时间。
初始化IClientProfile
IClientProfile可以复用,建议将其设置成应用程序全局唯一。
String regionid = "cn-hangzhou";
String accessKeyId = "*** Provide your AccessKeyId ***";
String accessKeySecret = "*** Provide your AccessKeySecret ***";
// Create a new IClientProfile instance
IClientProfile profile= DefaultProfile.getProfile(regionid, accessKeyId, accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "afs", "afs.aliyuncs.com");
调用阿里云验证码服务端API
IClientProfile完成后,即可调用阿里云验证码服务端提供的API,根据业务需要开发前端页面请求的处理类和对运行结果的处理方式。
关于阿里云验证码服务API的具体说明,请参见阿里云验证码Web/HTML5应用类型服务API。
public void test(){
AuthenticateSigRequest request = new AuthenticateSigRequest();
request.setSessionId("xxx");// 会话ID。必填参数,从前端success回调中获取,不可更改。
request.setSig("xxx");// 签名串。必填参数,从前端success回调中获取,不可更改。
request.setToken("xxx");// 请求唯一标识。必填参数,从前端success回调中获取,不可更改。
request.setScene("xxx");// 场景标识。必填参数,与前端页面填写数据一致,不可更改。
request.setAppKey("xxx");// 应用类型标识。必填参数,后端填写。
request.setRemoteIp("xxx");// 客户端IP。必填参数,后端填写。
try {
//response的code枚举:100验签通过,900验签失败。
AuthenticateSigResponse response = client.getAcsResponse(request);
} catch (Exception e) {
e.printStackTrace();
}
}