Commit db646430 by 罗长华

调整ResponseParser parser方法返回JSONObject

parent e08508f7
package com.wecloud.im.sdk.internal;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.wecloud.im.sdk.common.ApiResult;
/**
......@@ -8,13 +11,17 @@ import com.wecloud.im.sdk.common.ApiResult;
* @Date 2022年04月15日 20:40
* @Version 1.0
*/
public interface ResponseParser<T> {
public class ResponseParser {
/**
* Converts the result from stream to a java object.
*
* @param jsonResult
*/
ApiResult<T> parse(String jsonResult);
public static JSONObject parse(String jsonResult) {
TypeReference typeRef = new TypeReference<ApiResult<JSONObject>>() {
};
ApiResult<JSONObject> apiResult = (ApiResult<JSONObject>) JSON.parseObject(jsonResult, typeRef);
return apiResult.getData();
}
}
......@@ -4,7 +4,8 @@ import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import com.wecloud.im.sdk.common.ApiResult;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.ImClient;
......@@ -46,8 +47,9 @@ public class WecloudImClientOperation extends WecloudImOperation {
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint("/api/imClient/registerClient")
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(registerClientRequest).build();
ApiResult<ImClient> result = doOperation(request, null);
return result.getData();
JSONObject result = doOperation(request);
ImClient imClient = JSON.parseObject(result.toJSONString(), ImClient.class);
return imClient;
}
}
......@@ -10,7 +10,7 @@ import java.util.Map;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.wecloud.im.sdk.common.ApiResult;
import com.alibaba.fastjson.JSONObject;
import com.wecloud.im.sdk.common.HttpClient;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
......@@ -39,13 +39,22 @@ public abstract class WecloudImOperation {
this.appSecret = appSecret;
}
protected <T> ApiResult<T> doOperation(RequestMessage request, ResponseParser<T> responseParser) {
ApiResult<T> result = send(request, responseParser);
return result;
protected JSONObject doOperation(RequestMessage request) {
Credentials credentials = new Credentials(appKey, appSecret);
// 请求日期
String date = DateUtil.formatHttpDate(new Date());
request.addHeader(ImHeaders.DATE, date);
if (HttpMethod.POST.equals(request.getMethod())) {
request.addHeader(CONTENT_TYPE, "application/json; charset=utf-8");
}
// 添加签名请求头
RequestSigner signer = new RequestSigner(request.getMethod().name(), request.getEndpoint(), credentials);
signer.sign(request);
return send(request);
}
@SuppressWarnings("unchecked")
private <T> ApiResult<T> send(RequestMessage request, ResponseParser<T> responseParser) {
private JSONObject send(RequestMessage request) {
try {
// 组装请求
Map<String, Object> parameters = BeanUtil.beanToMap(request.getOriginalRequest(), false, true);
......@@ -53,15 +62,6 @@ public abstract class WecloudImOperation {
parameters.forEach((k, v) -> {
finalParameters.put(k, v.toString());
});
Credentials credentials = new Credentials(appKey, appSecret);
// 请求日期
String date = DateUtil.formatHttpDate(new Date());
request.addHeader(ImHeaders.DATE, date);
request.addHeader(CONTENT_TYPE, "application/json; charset=utf-8");
// 添加签名请求头
RequestSigner signer = new RequestSigner(request.getMethod().name(), request.getEndpoint(), credentials);
signer.sign(request);
URL endpoint = new URL(apiDomain, request.getEndpoint());
HttpClient httpClient =
HttpClient.builder().url(endpoint).addHeaders(request.getHeaders()).addParams(request.getParameters()).addParams(finalParameters);
......@@ -79,7 +79,7 @@ public abstract class WecloudImOperation {
assert response.body() != null;
String responseBody = response.body().string();
return responseParser.parse(responseBody);
return ResponseParser.parse(responseBody);
} catch (Exception e) {
throw new WecloudException("发送请求报错: " + e.getMessage());
......
......@@ -30,9 +30,4 @@ public class RegisterClientRequest extends WebServiceRequest {
*/
private String nickname;
/**
* 设备类型
*/
private Integer deviceType;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment