SDK客户端初始化
在V1.0 SDK中,所有的云产品都共用同一个客户端。该客户端通过Core SDK中的方法初始化生成一个Client对象来处理所有的请求。
依赖信息
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.3</version>
</dependency>
代码示例
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.profile.DefaultProfile;
public class Sample {
public static void main(String[] args) {
// 地域ID,用于自动寻址,更多请参见Endpoint配置章节
String regionId = "cn-shanghai";
// 通过读取环境变量获取AccessKey
EnvironmentVariableCredentialsProvider credentialsProvider = new EnvironmentVariableCredentialsProvider();
DefaultProfile profile = DefaultProfile.getProfile(regionId);
// 通过 SDK Core 保存用户的 profile 信息并初始化 client
DefaultAcsClient client = new DefaultAcsClient(profile, credentialsProvider);
}
}
说明 单Client的模式存在线程不安全的问题,而且通过一个profile信息在不同产品之间混用,容易造成的权限管理问题,建议您使用V2.0 SDK开发。
OpenAPI请求方式
在V1.0 SDK中,所有OpenAPI请求均通过SDK Core统一处理。云产品SDK中提供了OpenAPI的Request和Response对象,方便开发者简单应用,从而简化云服务调用和提高开发效率。以下是请求云服务器ECS DescribeRegions接口和短信服务SendSms接口的示例。有关请求参数和返回参数的描述,请参见各云产品文档中的API文档。
依赖信息
<!-- 核心依赖-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.3</version>
</dependency>
<!-- 云服务器依赖-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>5.11.7</version>
</dependency>
<!-- 短信服务依赖-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.2.1</version>
</dependency>
代码示例
package com.aliyun.sample;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.auth.EnvironmentVariableCredentialsProvider;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.ecs.model.v20140526.DescribeRegionsRequest;
import com.aliyuncs.ecs.model.v20140526.DescribeRegionsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
public class Sample {
public static void main(String[] args) throws ClientException {
// 地域ID,用于自动寻址,更多请参见Endpoint配置章节
String regionId = "cn-shanghai";
// 通过读取环境变量获取AccessKey
EnvironmentVariableCredentialsProvider credentialsProvider = new EnvironmentVariableCredentialsProvider();
DefaultProfile profile = DefaultProfile.getProfile(regionId);
// 通过SDK Core保存用户的profile信息并初始化client
DefaultAcsClient client = new DefaultAcsClient(profile, credentialsProvider);
// 实例化DescribeRegionsRequest对象
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
// 实例化SendSmsRequest对象并传递入参
SendSmsRequest sendSmsRequest = new SendSmsRequest();
sendSmsRequest.setPhoneNumbers("<phoneNumbers>");
// 通过SDK Core执行实际的HTTP请求将返回的结果序列化为SDK的Response结构
DescribeRegionsResponse describeRegionsResponse = client.getAcsResponse(describeRegionsRequest);
SendSmsResponse sendSmsResponse = client.getAcsResponse(sendSmsRequest);
// 若请求成功则打印响应内容
System.out.println(new Gson().toJson(describeRegionsResponse));
System.out.println(new Gson().toJson(sendSmsResponse));
}
}
说明 每个OpenAPI都有独立的Request,命名方式为${API}${Request},例如DescribeRegionRequest。
进阶文档
更多客户端初始化方式,请参见管理访问凭据。