客戶端初始化和請求方式
更新時間:
本節為您介紹客戶端的Client初始化方式以及如何發起OpenAPI請求。
SDK客戶端初始化
在V1.0 SDK中,所有的云產品都共用同一個客戶端。該客戶端通過Core SDK中的方法初始化生成一個Client對象來處理所有的請求。
說明
示例采用讀取環境變量的方式創建憑證,運行代碼前需配置環境變量ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
。具體操作,請參見在Linux、macOS和Windows系統配置環境變量。
<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。
進階文檔
更多客戶端初始化方式,請參見管理訪問憑據。
文檔內容是否對您有幫助?