Query information about a specific image similarity library
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.
NoteYou 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();
}
}
}