閱讀452 返回首頁    go 阿裏雲


使用ECS的API和SDK查詢內容隻能返回10條信息的原因__附錄_API 參考_雲服務器 ECS-阿裏雲

在一些可能會返回許多信息的 API 方法中,為了更好地展示信息,通常都會將需要返回的信息進行分頁,如查詢可用鏡像,返回40條數據,默認情況下會將結果分為10條一頁,總共會有4頁,一次隻會返回1頁的信息,所以造成返回的數據不全,使用時可以通過 PageSize 和 PageNumber 來控製,這兩個參數的說明如下:

參數 類型 必需 描述
PageNumber Integer 實例狀態列表的頁碼,起始值為 1,默認值為 1
PageSize Integer 分頁查詢時設置的每頁行數,最大值 100 行,默認值為 10

例如查詢鏡像,查詢杭州地域目前可用的官方公共鏡像,查詢結果中 TotalCount 顯示有39條,那麼結果將默認分成四頁,若希望一次獲取完,可以在請求中加入PageSize,設置為大於39的數(若使用 Java SDK,可以在 Request 對象中通過 setPageSize 方法將 PageSize 設置為大於39的數值),這樣請求後就可以一次返回39個鏡像的數據了。

以下是 Java SDK 的演示:

默認情況下,PageSize 值為10(因為 Java SDK 若不設置 PageSize 的值,使用 getPageSize 返回的會是 null,API 服務器會默認將 PageSize 設置為10):

代碼片段如下:

  1. DescribeImagesRequest describe = new DescribeImagesRequest();
  2. //describe.setPageSize(50);//默認情況下不設置的話PageSize就是10
  3. describe.setRegionId("cn-hangzhou");
  4. describe.setImageOwnerAlias("system");
  5. System.out.println("當前請求的PageSize大小:"+describe.getPageSize());
  6. DescribeImagesResponse response
  7. = client.getAcsResponse(describe);
  8. System.out.println("鏡像總數:"+response.getTotalCount());
  9. System.out.println("返回的響應中鏡像數量="+response.getImages().size());

1

使用 setPageSize 將 PageSize 值設置為50後,就可以一次性的返回所有鏡像了:

代碼片段如下:

  1. DescribeImagesRequest describe = new DescribeImagesRequest();
  2. describe.setPageSize(50);//這裏在Request中通過setPageSize()方法將每頁顯示的數量設置為50
  3. describe.setRegionId("cn-hangzhou");
  4. describe.setImageOwnerAlias("system");
  5. System.out.println("當前請求的PageSize大小:"+describe.getPageSize());
  6. try {
  7. DescribeImagesResponse response
  8. = client.getAcsResponse(describe);
  9. System.out.println("鏡像總數:"+response.getTotalCount());
  10. System.out.println("返回的響應中鏡像數量="+response.getImages().size());

2

注意:

PageSize 的最大值為100,若查詢的結果大於100,需要借助 PageNumber 來實現獲取後幾頁的數據,即多次提交請求,每次設置 PageNumber 為1、2、3…,以獲取所有的返回信息。可以在 request 中通過 setPageNumber() 這個方法指定需要返回的頁數。

最後更新:2016-11-23 16:04:13

  上一篇:go 時間格式__附錄_API 參考_雲服務器 ECS-阿裏雲
  下一篇:go 創建 Access Key__SDK 參考_雲服務器 ECS-阿裏雲