Query a list of similar image libraries

Updated at:

This topic describes how to use the Java software development kit (SDK) to perform a paged query for similar image libraries and their element information.

Feature description

You can call this operation to perform a paged query of all similar image libraries and their element information. For more information about the parameters, see the Query a list of similar image libraries API reference.

You must use the Content Moderation endpoint to call the service using the SDK. For more information about API endpoints, see Endpoints.

Prerequisites

  • Java dependencies are installed. For more information, see Installation.

    Note

    You must use the Java version described in the Installation topic to install the dependencies. Otherwise, subsequent operation calls fail.

  • The Extension.Uploader utility class is downloaded and imported into your project if you submit a local image or a binary image stream for image moderation.

Query a list of similar image libraries task

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.green.model.v20180509.ListSimilarityLibrariesRequest;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.http.ProtocolType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;


public class ListSimilarityLibrariesSample {

    public static void main(String[] args) throws Exception {
        /**
         * An Alibaba Cloud account AccessKey has full permissions for all APIs. Use a Resource Access Management (RAM) user to make API calls or perform routine O&M. 
         * Common methods to obtain environment variables:
         * Method 1:
         *     Obtain the AccessKey ID of the RAM user: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
         *     Obtain the AccessKey secret of the RAM user: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         * Method 2:
         *     Obtain the AccessKey ID of the RAM user: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
         *     Obtain the AccessKey secret of the RAM user: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
         */
        DefaultProfile profile = DefaultProfile.getProfile(
                "cn-shanghai",
                "Obtain the AccessKey ID of the RAM user from an environment variable.",
                "Obtain the AccessKey secret of the RAM user from an environment variable.");
        DefaultProfile.addEndpoint("cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
        IAcsClient client = new DefaultAcsClient(profile);

        ListSimilarityLibrariesRequest request = new ListSimilarityLibrariesRequest();
        // Specify the API response format and the request method.
        request.setAcceptFormat(FormatType.JSON);
        request.setMethod(MethodType.POST);
        request.setEncoding("utf-8");
        request.setProtocol(ProtocolType.HTTP);
        // pageSize: the number of entries to return on each page. Valid values: (0, 50]. currentPage: the number of the page to return. Valid values: (0, 50].
        JSONObject httpBody = new JSONObject();
        httpBody.put("pageSize", "5");
        httpBody.put("currentPage", "1");

        request.setHttpContent(org.apache.commons.codec.binary.StringUtils.getBytesUtf8(httpBody.toJSONString()),
                "UTF-8", FormatType.JSON);

        /**
         * Set the timeout period. The server-side timeout period is 10 seconds. Set the client-side timeout period accordingly.
         * If the ReadTimeout value that you set is less than the server-side processing time, a ReadTimeout exception is returned.
         */
        request.setConnectTimeout(3000);
        request.setReadTimeout(10000);
        HttpResponse httpResponse = null;
        try {
            httpResponse = client.doAction(request);
            // The result returned by the server after the server receives and processes the request.
            if (httpResponse != null && httpResponse.isSuccess()) {
                JSONObject scrResponse = JSON.parseObject(org.apache.commons.codec.binary.StringUtils.newStringUtf8(httpResponse.getHttpContent()));
                System.out.println(JSON.toJSONString(scrResponse, true));
                int requestCode = scrResponse.getIntValue("code");
                if (200 == requestCode) {
                    // The number of the current page.
                    int currentPage = scrResponse.getIntValue("currentPage");
                    // The number of entries per page.
                    int pageSize = scrResponse.getIntValue("pageSize");
                    // The total number of image libraries.
                    int totalCount = scrResponse.getIntValue("totalCount");
                    // The list of specific results.
                    JSONArray results = scrResponse.getJSONArray("data");
                    for (Object data : results) {
                        // A single result.
                        // The timestamp when the image library was created.
                        int createTime = ((JSONObject) data).getIntValue("createTime");
                        // The number of image samples in the image library.
                        int imageCount = ((JSONObject) data).getIntValue("imageCount");
                        // The name of the image library.
                        String name = ((JSONObject) data).getString("name");
                        // The region where the image library resides.
                        String region = ((JSONObject) data).getString("region");
                    }
                } else {
                    /**
                     * Indicates that the request failed. You can troubleshoot the failure based on the error message.
                     */
                    System.out.println("the whole request failed. response:" + JSON.toJSONString(scrResponse));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}