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) {
String regionId = "cn-shanghai";
EnvironmentVariableCredentialsProvider credentialsProvider = new EnvironmentVariableCredentialsProvider();
DefaultProfile profile = DefaultProfile.getProfile(regionId);
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 {
String regionId = "cn-shanghai";
EnvironmentVariableCredentialsProvider credentialsProvider = new EnvironmentVariableCredentialsProvider();
DefaultProfile profile = DefaultProfile.getProfile(regionId);
DefaultAcsClient client = new DefaultAcsClient(profile, credentialsProvider);
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
SendSmsRequest sendSmsRequest = new SendSmsRequest();
sendSmsRequest.setPhoneNumbers("<phoneNumbers>");
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。
进阶文档
更多客户端初始化方式,请参见管理访问凭据。