Query information about a specific image similarity library

Updated at:

This topic describes how to use the Java software development kit (SDK) to query a specific image similarity library.

Feature description

Call this API operation to query a specific image similarity library. For more information about the parameters, see the API documentation for querying a specific image similarity library.

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 specific image similarity library

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.GetSimilarityLibraryRequest;
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 GetSimilarityLibrarySample {

    public static void main(String[] args) throws Exception {
        /**
         * An AccessKey pair of an Alibaba Cloud account has all API access permissions. Use a Resource Access Management (RAM) user to call API operations or perform routine O&M. 
         * The following code shows 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 your AccessKey ID from an environment variable.",
                "Obtain your AccessKey secret from an environment variable.");
        DefaultProfile.addEndpoint("cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
        IAcsClient client = new DefaultAcsClient(profile);

        GetSimilarityLibraryRequest request = new GetSimilarityLibraryRequest();
        // Specify the API response format and request method.
        request.setAcceptFormat(FormatType.JSON);
        request.setMethod(MethodType.POST);
        request.setEncoding("utf-8");
        request.setProtocol(ProtocolType.HTTP);

        JSONObject httpBody = new JSONObject();
        httpBody.put("name", "The name of the image similarity library");

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

        /**
         * Set the timeout period. The server-side timeout period for a full-link request is 10 seconds. Set the timeout period accordingly.
         * If the value that you set for ReadTimeout is less than the server-side processing time, a ReadTimeout exception occurs.
         */
        request.setConnectTimeout(3000);
        request.setReadTimeout(10000);
        HttpResponse httpResponse = null;
        try {
            httpResponse = client.doAction(request);
            // The response returned by the server after the request is received and processed.
            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");
                JSONObject data = scrResponse.getJSONObject("data");
                if (200 == requestCode) {
                    // The timestamp when the library was created.
                    int createTime = data.getIntValue("createTime");
                    // The number of image samples in the library.
                    int imageCount = data.getIntValue("imageCount");
                    // The name of the library.
                    String name = data.getString("name");
                    // The region where the library is located.
                    String region = data.getString("region");
                } else {
                    /**
                     * This indicates that the request failed. Analyze the cause of the failure based on the specific situation.
                     */
                    System.out.println("The entire request failed. Response: " + JSON.toJSONString(scrResponse));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}