在一些可能會返回許多資訊的 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):
程式碼片段如下:
DescribeImagesRequest describe = new DescribeImagesRequest();
//describe.setPageSize(50);//預設情況下不設定的話PageSize就是10
describe.setRegionId("cn-hangzhou");
describe.setImageOwnerAlias("system");
System.out.println("當前請求的PageSize大小:"+describe.getPageSize());
DescribeImagesResponse response
= client.getAcsResponse(describe);
System.out.println("鏡像總數:"+response.getTotalCount());
System.out.println("返回的響應中鏡像數量="+response.getImages().size());
使用 setPageSize 將 PageSize 值設定為50後,就可以一次性的返回所有鏡像了:
程式碼片段如下:
DescribeImagesRequest describe = new DescribeImagesRequest();
describe.setPageSize(50);//這裡在Request中通過setPageSize()方法將每頁顯示的數量設定為50
describe.setRegionId("cn-hangzhou");
describe.setImageOwnerAlias("system");
System.out.println("當前請求的PageSize大小:"+describe.getPageSize());
try {
DescribeImagesResponse response
= client.getAcsResponse(describe);
System.out.println("鏡像總數:"+response.getTotalCount());
System.out.println("返回的響應中鏡像數量="+response.getImages().size());
![]() |
说明 |
PageSize 的最大值為100,若查詢的結果大於100,需要藉助 PageNumber 來實現獲取後幾頁的資料,即多次提交請求,每次設定 PageNumber 為1、2、3…,以獲取所有的返回資訊。可以在請求中通過 setPageNumber() 這個方法指定需要返回的頁數。 |