回调内容解析

最近更新时间:2024-10-18 19:52:11

我的收藏

简介

本文档为您提供关于数据处理相关接口的标准处理回调信息解析的 SDK 示例代码。

XML 回调内容解析

功能说明

将数据处理接口中的公共的 XML 回调信息解析为 Java 对象。

使用示例

本示例用于解析回调数据,可通过获取 Unmarshallers 来进行 XML 数据的解析。
说明:
您可以通过查看 COSClient 的接口获取到需要使用的 XML 解析器,也可以通过查看功能对应的查询接口实现使用的是哪个 Unmarshaller。
以文档预览回调信息为例,对应的查询接口为 describeDocProcessJob。
COSClient 中的代码片段,查看 invoke 方法中是使用哪个 Unmarshaller。
@Override
public DocJobResponse describeDocProcessJob(DocJobRequest request) {
this.checkCIRequestCommon(request);
CosHttpRequest<DocJobRequest> httpRequest = this.createRequest(request.getBucketName(), "/doc_jobs/" + request.getJobId(), request, HttpMethodName.GET);
return this.invoke(httpRequest, new Unmarshallers.DescribeDocJobUnmarshaller());
}
使用 Unmarshaller 进行解析响应内容。
public static void processCINotifyResponse(String response) throws Exception {
Unmarshallers.DescribeDocJobUnmarshaller describeDocJobUnmarshaller = new Unmarshallers.DescribeDocJobUnmarshaller();
InputStream is = new ByteArrayInputStream(response.getBytes());
DocJobResponse docJobResponse = describeDocJobUnmarshaller.unmarshall(is);
}

JSON 回调内容解析

功能说明

将数据万象公共的 JSON 回调信息解析为 Java 对象。

使用示例

说明:
本质上处理 JSON 回调是将 JSON 转为 XML 后再进行处理。
Demo 中使用了 org.json 将 Json 转为 XML,并未在 SDK 的 Pom 中提供该依赖,需要自行导入。
以图片内容审核回调接口为例,对应的查询接口为 describeAuditingImageJob。
COSClient 中的代码片段,查看 invoke 方法中是使用哪个 Unmarshaller。
@Override
public ImageAuditingResponse describeAuditingImageJob(DescribeImageAuditingRequest imageAuditingRequest) {
rejectNull(imageAuditingRequest.getBucketName(),
"The bucketName parameter must be specified setting the object tags");
rejectNull(imageAuditingRequest.getJobId(),
"The jobId parameter must be specified setting the object tags");
CosHttpRequest<DescribeImageAuditingRequest> request = createRequest(imageAuditingRequest.getBucketName(), "/image/auditing/" + imageAuditingRequest.getJobId(), imageAuditingRequest, HttpMethodName.GET);
return invoke(request, new Unmarshallers.ImageAuditingDescribeJobUnmarshaller());
}
将 JSON 响应转为 XML 后使用 Unmarshaller 进行解析响应内容。
//回调 demo
public static void processJsonCINotifyResponse(String jsonResponse) throws Exception {
JSONObject response = new JSONObject(jsonResponse);
JSONObject json = new JSONObject();
json.put("Response",response);
String xml = XML.toString(json);
Unmarshallers.ImageAuditingDescribeJobUnmarshaller imageJobUnmarshaller = new Unmarshallers.ImageAuditingDescribeJobUnmarshaller();
InputStream is = new ByteArrayInputStream(xml.getBytes());
ImageAuditingResponse imageAuditingResponse = imageJobUnmarshaller.unmarshall(is);
}
上述示例使用的是 org.json.json,SDK 中并没有提供,如需使用请添加如下依赖。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>