You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.7 KiB
83 lines
3.7 KiB
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.exceptions.ClientException;
|
|
import com.aliyuncs.exceptions.ServerException;
|
|
import com.aliyuncs.green.model.v20180509.ImageAsyncScanResultsRequest;
|
|
import com.aliyuncs.http.FormatType;
|
|
import com.aliyuncs.http.HttpResponse;
|
|
import com.aliyuncs.profile.DefaultProfile;
|
|
import com.aliyuncs.profile.IClientProfile;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Created by liuhai.lh on 2017/2/17.
|
|
* 获取图片异步检测结果接口
|
|
* @author liuhai.lh
|
|
* @date 2017/02/17
|
|
*/
|
|
public class ImageAsyncScanResultsSample extends BaseSample{
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
//请替换成你自己的accessKeyId、accessKeySecret
|
|
IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
|
|
DefaultProfile.addEndpoint(getEndPointName(), regionId, "Green", getDomain());
|
|
IAcsClient client = new DefaultAcsClient(profile);
|
|
|
|
ImageAsyncScanResultsRequest imageAsyncScanResultsRequest = new ImageAsyncScanResultsRequest();
|
|
imageAsyncScanResultsRequest.setAcceptFormat(FormatType.JSON); // 指定api返回格式
|
|
imageAsyncScanResultsRequest.setMethod(com.aliyuncs.http.MethodType.POST); // 指定请求方法
|
|
imageAsyncScanResultsRequest.setEncoding("utf-8");
|
|
imageAsyncScanResultsRequest.setRegionId(regionId);
|
|
|
|
|
|
List<String> taskIds = new ArrayList<String>();
|
|
taskIds.add("img1hdP5Wn0QC@7wW0n$VX0R@-1p3mnZ");
|
|
imageAsyncScanResultsRequest.setHttpContent(JSON.toJSONString(taskIds).getBytes("UTF-8"), "UTF-8", FormatType.JSON);
|
|
|
|
/**
|
|
* 请务必设置超时时间
|
|
*/
|
|
imageAsyncScanResultsRequest.setConnectTimeout(3000);
|
|
imageAsyncScanResultsRequest.setReadTimeout(6000);
|
|
|
|
try {
|
|
HttpResponse httpResponse = client.doAction(imageAsyncScanResultsRequest);
|
|
|
|
if(httpResponse.isSuccess()){
|
|
JSONObject scrResponse = JSON.parseObject(new String(httpResponse.getHttpContent(), "UTF-8"));
|
|
System.out.println(JSON.toJSONString(scrResponse, true));
|
|
if (200 == scrResponse.getInteger("code")) {
|
|
JSONArray taskResults = scrResponse.getJSONArray("data");
|
|
for (Object taskResult : taskResults) {
|
|
if(200 == ((JSONObject)taskResult).getInteger("code")){
|
|
JSONArray sceneResults = ((JSONObject)taskResult).getJSONArray("results");
|
|
for (Object sceneResult : sceneResults) {
|
|
String scene = ((JSONObject)sceneResult).getString("scene");
|
|
String suggestion = ((JSONObject)sceneResult).getString("suggestion");
|
|
//根据scene和suggetion做相关的处理
|
|
//do something
|
|
}
|
|
}else{
|
|
System.out.println("task process fail:" + ((JSONObject)taskResult).getInteger("code"));
|
|
}
|
|
}
|
|
} else {
|
|
System.out.println("detect not success. code:" + scrResponse.getInteger("code"));
|
|
}
|
|
}else{
|
|
System.out.println("response not success. status:" + httpResponse.getStatus());
|
|
}
|
|
} catch (ServerException e) {
|
|
e.printStackTrace();
|
|
} catch (ClientException e) {
|
|
e.printStackTrace();
|
|
} catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|