本文以調用提交域名注冊任務為例,為您介紹SDK的安裝方式和使用。
前提條件
由于阿里云賬號(主賬號)擁有資源的所有權限,其AccessKey一旦泄露風險巨大,所以建議您使用RAM用戶的AccessKey。獲取方法請參見創建AccessKey。
給RAM用戶授予操作域名資源的權限。本示例選擇AliyunDomainFullAccess系統策略。
在環境變量中配置AccessKey,具體操作步驟請參見在Linux、macOS和Windows系統配置環境變量。
安裝SDK
在Maven的配置文件中添加Maven倉庫。
<repositories> <repository> <id>sonatype-nexus-staging</id> <name>Sonatype Nexus Staging</name> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
打開Maven項目的pom.xml文件,在
<dependencies>
節點中加入依賴配置,并刷新Maven配置。<dependency> <groupId>com.aliyun</groupId> <artifactId>domain20180129</artifactId> <version>3.15.1</version> </dependency>
使用SDK
1. 初始化客戶端
阿里云SDK支持多種訪問憑據用于初始化客戶端,例如AccessKey和STS Token等,更多方式請參見管理訪問憑據。本示例以通過AccessKey初始化客戶端為例。
import com.aliyun.domain20180129.Client;
import com.aliyun.teaopenapi.models.Config;
public class Sample {
private static Client createClient() throws Exception {
Config config = new Config()
// 必填,請確保代碼運行環境設置了環境變量 ALIBABA_CLOUD_ACCESS_KEY_ID。
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// 必填,請確保代碼運行環境設置了環境變量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
// Endpoint 請參考 https://api.aliyun.com/product/Domain
.setEndpoint("domain.aliyuncs.com");
return new Client(config);
}
}
2. 構建接口的請求對象
在構建請求對象之前,請在API參考中找到將要調用的接口,查看該接口的參數信息。
請求對象命名規則:{API名稱}Request,例如SaveSingleTaskForCreatingOrderActivate該接口的請求對象為SaveSingleTaskForCreatingOrderActivateRequest。
SaveSingleTaskForCreatingOrderActivateRequest request = new SaveSingleTaskForCreatingOrderActivateRequest()
.setDomainName("example.com");
3. 發起調用
接口返回對象命名規則:{API名稱}Response,例如SaveSingleTaskForCreatingOrderActivate該接口的返回對象為SaveSingleTaskForCreatingOrderActivateResponse。
// 設置運行時參數
RuntimeOptions runtime = new RuntimeOptions();
SaveSingleTaskForCreatingOrderActivateResponse response = client.saveSingleTaskForCreatingOrderActivateWithOptions(request, runtime);
4. 異常處理
Java SDK將異常分為TeaUnretryableException和TeaException。
TeaUnretryableException:主要是因為網絡問題造成,一般是網絡問題達到最大重試次數后拋出。
TeaException:主要以業務報錯為主的異常。
重要示例中僅做打印展示。請重視異常處理,切勿在項目中直接忽略異常。建議采取合理的措施來處理異常,比如合理地傳播異常、記錄日志、嘗試恢復等,以確保系統的健壯性和穩定性。
try {
Client client = createClient();
SaveSingleTaskForCreatingOrderActivateRequest request = new SaveSingleTaskForCreatingOrderActivateRequest()
.setDomainName("example.com");
// 設置運行時參數
RuntimeOptions runtime = new RuntimeOptions();
SaveSingleTaskForCreatingOrderActivateResponse response = client.saveSingleTaskForCreatingOrderActivateWithOptions(request, runtime);
} catch (TeaUnretryableException ue) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
ue.printStackTrace();
// 打印錯誤信息
System.out.println(ue.getMessage());
// 打印請求記錄,查詢錯誤發生時的請求信息
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
e.printStackTrace();
// 打印錯誤碼
System.out.println(e.getCode());
// 打印錯誤信息,錯誤信息中包含 RequestId
System.out.println(e.getMessage());
// 打印服務端返回的具體錯誤內容
System.out.println(e.getData());
} catch (Exception e) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
e.printStackTrace();
}
5. 完整示例
import com.aliyun.domain20180129.Client;
import com.aliyun.domain20180129.models.SaveSingleTaskForCreatingOrderActivateRequest;
import com.aliyun.domain20180129.models.SaveSingleTaskForCreatingOrderActivateResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Sample {
private static Client createClient() throws Exception {
Config config = new Config()
// 必填,請確保代碼運行環境設置了環境變量 ALIBABA_CLOUD_ACCESS_KEY_ID。
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// 必填,請確保代碼運行環境設置了環境變量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
// Endpoint 請參考 https://api.aliyun.com/product/Domain
.setEndpoint("domain.aliyuncs.com");
return new Client(config);
}
public static void main(String[] args_) {
try {
Client client = createClient();
SaveSingleTaskForCreatingOrderActivateRequest request = new SaveSingleTaskForCreatingOrderActivateRequest()
.setDomainName("example.com");
// 設置運行時參數
RuntimeOptions runtime = new RuntimeOptions();
SaveSingleTaskForCreatingOrderActivateResponse response = client.saveSingleTaskForCreatingOrderActivateWithOptions(request, runtime);
} catch (TeaUnretryableException ue) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
ue.printStackTrace();
// 打印錯誤信息
System.out.println(ue.getMessage());
// 打印請求記錄
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
e.printStackTrace();
// 打印錯誤碼
System.out.println(e.getCode());
// 打印錯誤信息,錯誤信息中包含 RequestId
System.out.println(e.getMessage());
// 打印服務端返回的具體錯誤內容
System.out.println(e.getData());
} catch (Exception e) {
// 此處僅做打印展示,請謹慎對待異常處理,在工程項目中切勿直接忽略異常。
e.printStackTrace();
}
}
}