Query a list of similar image libraries
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.
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 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();
}
}
}