Java SDK调用示例

更新时间:
复制 MD 格式

本文介绍如何使用阿里云Java语言SDK开发包,查询您账号下通过CDN加速的域名。

步骤一:查看OpenAPI文档

在调用OpenAPI前,建议您先阅读对应接口文档,了解、学习调用该接口所需要的参数及权限等,更多信息请参见API概览

步骤二:创建RAM用户并完成授权

重要

阿里云账号拥有所有API的访问权限,建议您创建并使用RAM用户进行API访问或日常运维。

如您已创建RAM用户且已完成授权,可跳过此步骤。

  • 使用阿里云账号登录RAM控制台

  • 创建RAM用户。

    • 在左侧导航栏,选择身份管理 > 用户

    • 用户页面,单击创建用户

    • 创建用户页面,设置登录名称显示名称,设置访问方式控制台访问使用永久 AccessKey 访问,单击确定

      重要

      RAM用户的AccessKey Secret只在创建时显示,不支持查看,请下载CSV文件后妥善保管。

      创建RAM用户成功后,请记录用户登录名称和密码。在调用OpenAPI时,需要使用该RAM用户登录阿里云OpenAPI开发者门户,并使用该RAM用户的AccessKey进行代码调试。

  • RAM用户授权。

    说明

    创建RAM用户后,该RAM用户无任何操作CDN的权限。您需要为该RAM用户授予系统策略(AliyunCDNFullAccess、AliyunCDNReadOnlyAccess)或自定义策略。本案例以授予RAM用户AliyunCDNReadOnlyAccess策略为例,AliyunCDNReadOnlyAccess策略具备CDN资源的只读权限。

    • 用户页面,单击目标RAM用户对应的添加权限

    • 新增授权面板,在系统策略中搜索选中AliyunCDNReadOnlyAccess,然后单击确认新增授权

    • 确认授权结果,单击关闭

步骤三:调用OpenAPI

  • 使用RAM用户登录阿里云OpenAPI门户

  • 选择云产品为内容分发

  • 在顶部菜单栏,选择工具中心>在线调试

  • 在左侧导航栏,找到并单击DescribeUserDomains接口,服务地址选择华东1(杭州)DomainName参数输入要查询的域名,如果不输入会显示此账号下所有的域名。

  • 单击发起调用

    调用结果区域,您可以看到查询结果、Request Header、Response Header等信息,状态码200表示调用成功。

步骤四:获取SDK示例代码

OpenAPI平台提供了多种编程语言(Java、Go、Python、Node.js、TypeScript、PHP、C++ 等)的SDK。开发者只需要集成SDK,通过SDK暴露的方法直接调用OpenAPI 。SDK统一封装了签名逻辑、超时机制、重试机制,并根据文档返回结构化 Response 对象,易于开发。

以获取Java SDK示例代码为例,其他语言获取方式相同。

  • SDK示例页签,选择SDK版本和SDK语言。推荐使用V2.0版本。关于V2.0V1.0的区别,请参见V1.0 SDKV2.0 SDK区别

  • 单击下载完整工程可以下载完整的SDK工程。下载完后完成解压

    说明
    • SDK示例显示区域的右上角,单击image图标可以复制SDK示例代码。

    • 单击SDK信息,可以获取SDK包名称、SDK包版本、SDK包管理平台、SDK安装命令等基础信息,便于您集成开发。

步骤五:运行SDK示例代码

以运行Java SDK示例代码为例。

  1. 打开IntelliJ IDEA,单击File->Open,选择解压后的工程文件夹,等待Maven自动安装依赖信息

  2. 在调用之前,需要先获取访问凭证AccessKey,建议使用前面创建的RAM用户AccessKey。更多信息,请参见创建RAM用户的AccessKey

    重要

    获取RAM用户的AccessKey之后,还需要在环境变量中设置AccessKey,具体操作步骤请参见Linux、macOSWindows系统配置环境变量

  3. 运行示例代码。

    双击打开Sample,确认无报错后,运行代码。

    // This file is auto-generated, don't edit it. Thanks.
    package com.aliyun.sample;
    
    import com.aliyun.tea.*;
    
    public class Sample {
    
        /**
         * <b>description</b> :
         * <p>使用AK&amp;SK初始化账号Client</p>
         * @return Client
         *
         * @throws Exception
         */
        public static com.aliyun.cdn20180510.Client createClient() throws Exception {
            // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
            // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.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/Cdn
            config.endpoint = "cdn.aliyuncs.com";
            return new com.aliyun.cdn20180510.Client(config);
        }
    
        public static void main(String[] args_) throws Exception {
            java.util.List<String> args = java.util.Arrays.asList(args_);
            com.aliyun.cdn20180510.Client client = Sample.createClient();
            com.aliyun.cdn20180510.models.DescribeUserDomainsRequest describeUserDomainsRequest = new com.aliyun.cdn20180510.models.DescribeUserDomainsRequest()
                    .setDomainName("clxxxop");
            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                com.aliyun.cdn20180510.models.DescribeUserDomainsResponse resp = client.describeUserDomainsWithOptions(describeUserDomainsRequest, runtime);
                com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
            } catch (TeaException error) {
                // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
                // 错误 message
                System.out.println(error.getMessage());
                // 诊断地址
                System.out.println(error.getData().get("Recommend"));
            }
        }
    }
    
  4. 查看运行结果。在底部控制台按下ctrl+f,搜索statusCode,如果看到"statusCode":200表示调用成功。

    63a1fa3437fb64293addba0"},"statusCode":200,"body":{"backupPlans":{"backupPlan":[{"backupSourceGroupId":"","backupType":"COMPLETE","createdTime":1716258117,"crossAccountType":"SELF_ACCOUNT","crossAccountUserId":0,"disabled":fal