本文介绍了如何使用Java SDK,分页查询相似图库及其元素信息。
功能描述
调用该接口分页查询所有相似图库及其元素信息。关于参数的详细说明,请参见查询相似图库列表API文档。
您需要使用内容安全的API接入地址,调用本SDK接口。关于API接入地址的信息,请参见接入地址(Endpoint)。
前提条件
安装Java依赖。关于安装Java依赖的具体操作,请参见安装Java依赖。
说明请一定按照安装Java依赖页面中的版本安装,否则会导致调用失败。
如果使用本地文件或者二进制文件检测,请下载并在项目工程中引入Extension.Uploader工具类。
查询相似图库列表任务
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 {
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 常见获取环境变量方式:
* 方式一:
* 获取RAM用户AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* 方式二:
* 获取RAM用户AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
DefaultProfile profile = DefaultProfile.getProfile(
"cn-shanghai",
"建议从环境变量中获取RAM用户AccessKey ID",
"建议从环境变量中获取RAM用户AccessKey Secret");
DefaultProfile.addEndpoint("cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
IAcsClient client = new DefaultAcsClient(profile);
ListSimilarityLibrariesRequest request = new ListSimilarityLibrariesRequest();
// 指定API返回格式、请求方法。
request.setAcceptFormat(FormatType.JSON);
request.setMethod(MethodType.POST);
request.setEncoding("utf-8");
request.setProtocol(ProtocolType.HTTP);
//pageSize:每页大小,取值范围:(0,50],currentPage:当前页码,取值范围:(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);
/**
* 请设置超时时间,服务端全链路处理超时时间为10秒,请做相应设置。
* 如果您设置的ReadTimeout小于服务端处理的时间,程序中会获得一个ReadTimeout异常。
*/
request.setConnectTimeout(3000);
request.setReadTimeout(10000);
HttpResponse httpResponse = null;
try {
httpResponse = client.doAction(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) {
// 当前页码。
int currentPage = scrResponse.getIntValue("currentPage");
// 页面大小。
int pageSize = scrResponse.getIntValue("pageSize");
// 图库总数量。
int totalCount = scrResponse.getIntValue("totalCount");
// 具体结果列表。
JSONArray results = scrResponse.getJSONArray("data");
for (Object data : results) {
// 单个结果。
// 创建图库的时间戳。
int createTime = ((JSONObject) data).getIntValue("createTime");
// 图库中的图片样本的数量。
int imageCount = ((JSONObject) data).getIntValue("imageCount");
// 图库名称。
String name = ((JSONObject) data).getString("name");
// 图库所属区域。
String region = ((JSONObject) data).getString("region");
}
} else {
/**
* 表明请求整体处理失败,原因视具体的情况详细分析。
*/
System.out.println("the whole request failed. response:" + JSON.toJSONString(scrResponse));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
文档内容是否对您有帮助?