日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用CommonRequest進行調用

更新時間:

說明

當您要調用的某個產品的API沒有提供SDK時,可以采用泛用型的API調用方式(CommonRequest)。使用CommonRequest調用方式可實現任意OpenAPI接口的調用。

CommonRequest調用特點

CommonRequest的特點如下:

  1. 輕量:只需Core包即可發起調用,無需下載安裝各產品的SDK。

  2. 簡便:無需更新SDK即可調用最新發布的API。

  3. 快速迭代。

使用CommonRequest

阿里云產品的API有RPC和RESTful兩種風格,不同風格的API的CommonRequest的調用方法也不同。

通常API參數中包含Action參數的是RPC風格,包含PathPattern參數的是RESTful風格。一般情況下,每個產品內,所有API的調用風格是統一的。每個API僅支持特定的一種風格調用,傳入錯誤的標識,可能會調用到其他API,或收到ApiNotFound的錯誤信息。

發起一次CommonRequest請求,您需要獲取以下幾個參數的值。您可以在文檔中心各產品的API文檔中獲取以下參數的值。此外,部分產品也可以通過OpenAPI 開發者門戶來獲取API的參數信息。

  • 域名(domain):該產品的服務地址。

  • API版本(version):該API的版本號,格式為YYYY-MM-DD。

  • 接口信息:要調用的接口名稱。

    • 當調用的API為RPC風格(大部分阿里云產品API為RPC風格,如ECS和RDS)時,需要獲取Action參數,使用request.ApiName = "<Action>"的方式來指定API名稱。

      • 例如RunInstances接口,在發起CommonRequest請求時,需要使用request.ApiName = "RunInstances"來指定API名稱。

    • 當調用的API為RESTful風格(如容器服務)時,需要獲取PathPattern參數,使用request.PathPattern = "<PathPattern>"的方式來指定RESTful路徑。

      • 例如容器服務的查看所有集群實例的API的PathPattern為/clusters,在發起CommonRequest請求時,要使用request.PathPattern = "/clusters"指定RESTful路徑。

示例:調用RPC風格的API

以下代碼展示了如何使用CommonRequest的方式調用ECS的DescribeInstanceStatus接口:

using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
class Sample
{
    static void Main(string[] args)
    {
        // 構建一個客戶端實例,用于發起請求
        IClientProfile profile = DefaultProfile.GetProfile(
            // 地域ID
            "<your-region-id>",
            // 從環境變量獲取RAM賬號的AccessKey ID
            Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
            // 從環境變量獲取RAM賬號的AccessKey ID
            Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        DefaultAcsClient client = new DefaultAcsClient(profile);
        try
        {
            // 構造請求
            CommonRequest request = new CommonRequest();
            request.Domain = "ecs.aliyuncs.com";
            request.Version = "2014-05-26";
            // 因為是 RPC 風格接口,需指定 ApiName(Action)
            request.Action = "DescribeInstanceStatus";
            request.AddQueryParameters("PageNumber", "1");
            request.AddQueryParameters("PageSize", "30");
            // 發起請求,并得到 Response
            CommonResponse response = client.GetCommonResponse(request);
            System.Console.WriteLine(response.Data);
        }
        catch (ServerException ex)
        {
            System.Console.WriteLine(ex.ToString());
        }
        catch (ClientException ex)
        {
            System.Console.WriteLine(ex.ToString());
        }
    }
}

示例:調用RESTful(ROA)風格的API

以下代碼展示了如何使用CommonRequest的方式調用容器服務的查看所有集群實例接口:

using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
class Sample
{
    static void Main(string[] args)
    {
        // 構建一個 Client,用于發起請求
        IClientProfile profile = DefaultProfile.GetProfile(
            // 地域ID
            "<your-region-id>",
            // 從環境變量獲取RAM賬號的AccessKey ID
            Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
            // 從環境變量獲取RAM賬號的AccessKey ID
            Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        DefaultAcsClient client = new DefaultAcsClient(profile);
        try
        {
            // 構造請求
            CommonRequest request = new CommonRequest();
            request.Domain = "cs.aliyuncs.com";
            request.Version = "2015-12-15";
            // 因為是Restful風格接口,需指定 UriPattern
            request.UriPattern = "/clusters";
            // 發起請求,并得到 Response
            CommonResponse response = client.GetCommonResponse(request);
            System.Console.WriteLine(response.Data);
        }
        catch (ServerException ex)
        {
            System.Console.WriteLine(ex.ToString());
        }
        catch (ClientException ex)
        {
            System.Console.WriteLine(ex.ToString());
        }
    }
}