Unverified Commit 0b262aa9 authored by Yang Libin's avatar Yang Libin Committed by GitHub

feat: introduce okhttp client (#44)

* Support keep-Alive Connection * Rename some classes
parent d488c82d
...@@ -81,6 +81,11 @@ ...@@ -81,6 +81,11 @@
<version>2.13.0</version> <version>2.13.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.2</version>
</dependency>
<dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.13.2</version> <version>4.13.2</version>
......
...@@ -6,7 +6,7 @@ package io.github.doocs.im.constant; ...@@ -6,7 +6,7 @@ package io.github.doocs.im.constant;
* @author bingo * @author bingo
* @since 2021/10/30 9:54 * @since 2021/10/30 9:54
*/ */
public enum CommonErrorCode { public enum ErrorCode {
/** /**
* REST API 公共错误码:https://cloud.tencent.com/document/product/269/1519 * REST API 公共错误码:https://cloud.tencent.com/document/product/269/1519
*/ */
...@@ -34,7 +34,7 @@ public enum CommonErrorCode { ...@@ -34,7 +34,7 @@ public enum CommonErrorCode {
ILLEGAL_IP_REST_API(60021, "RestAPI 调用来源 IP 非法"), ILLEGAL_IP_REST_API(60021, "RestAPI 调用来源 IP 非法"),
; ;
CommonErrorCode(Integer code, String info) { ErrorCode(Integer code, String info) {
this.code = code; this.code = code;
this.info = info; this.info = info;
} }
......
...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient; ...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient;
import io.github.doocs.im.model.request.*; import io.github.doocs.im.model.request.*;
import io.github.doocs.im.model.response.*; import io.github.doocs.im.model.response.*;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -31,37 +30,31 @@ public class Account { ...@@ -31,37 +30,31 @@ public class Account {
public AccountImportResult accountImport(AccountImportRequest accountImportRequest) throws IOException { public AccountImportResult accountImport(AccountImportRequest accountImportRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_IMPORT_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_IMPORT_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(accountImportRequest), null); return HttpUtil.post(url, accountImportRequest, AccountImportResult.class);
return JsonUtil.str2Obj(result, AccountImportResult.class);
} }
public MultiAccountImportResult multiAccountImport(MultiAccountImportRequest multiAccountImportRequest) throws IOException { public MultiAccountImportResult multiAccountImport(MultiAccountImportRequest multiAccountImportRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, MULTI_ACCOUNT_IMPORT_COMMAND); String url = imClient.getUrl(SERVICE_NAME, MULTI_ACCOUNT_IMPORT_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(multiAccountImportRequest), null); return HttpUtil.post(url, multiAccountImportRequest, MultiAccountImportResult.class);
return JsonUtil.str2Obj(result, MultiAccountImportResult.class);
} }
public AccountDeleteResult accountDelete(AccountDeleteRequest accountDeleteRequest) throws IOException { public AccountDeleteResult accountDelete(AccountDeleteRequest accountDeleteRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_DELETE_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_DELETE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(accountDeleteRequest), null); return HttpUtil.post(url, accountDeleteRequest, AccountDeleteResult.class);
return JsonUtil.str2Obj(result, AccountDeleteResult.class);
} }
public AccountCheckResult accountCheck(AccountCheckRequest accountCheckRequest) throws IOException { public AccountCheckResult accountCheck(AccountCheckRequest accountCheckRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_CHECK_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_CHECK_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(accountCheckRequest), null); return HttpUtil.post(url, accountCheckRequest, AccountCheckResult.class);
return JsonUtil.str2Obj(result, AccountCheckResult.class);
} }
public KickResult kick(KickRequest kickRequest) throws IOException { public KickResult kick(KickRequest kickRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, KICK_COMMAND); String url = imClient.getUrl(SERVICE_NAME, KICK_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(kickRequest), null); return HttpUtil.post(url, kickRequest, KickResult.class);
return JsonUtil.str2Obj(result, KickResult.class);
} }
public QueryStateResult queryState(QueryStateRequest queryStateRequest) throws IOException { public QueryStateResult queryState(QueryStateRequest queryStateRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_OPEN_IM, QUERY_STATE_COMMAND); String url = imClient.getUrl(SERVICE_NAME_OPEN_IM, QUERY_STATE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(queryStateRequest), null); return HttpUtil.post(url, queryStateRequest, QueryStateResult.class);
return JsonUtil.str2Obj(result, QueryStateResult.class);
} }
} }
...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient; ...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient;
import io.github.doocs.im.model.request.*; import io.github.doocs.im.model.request.*;
import io.github.doocs.im.model.response.*; import io.github.doocs.im.model.response.*;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -48,146 +47,122 @@ public class Group { ...@@ -48,146 +47,122 @@ public class Group {
public GetAppidGroupListResult getAppIdGroupList(GetAppidGroupListRequest getAppidGroupListRequest) throws IOException { public GetAppidGroupListResult getAppIdGroupList(GetAppidGroupListRequest getAppidGroupListRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_APPID_GROUP_LIST_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_APPID_GROUP_LIST_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getAppidGroupListRequest), null); return HttpUtil.post(url, getAppidGroupListRequest, GetAppidGroupListResult.class);
return JsonUtil.str2Obj(result, GetAppidGroupListResult.class);
} }
public CreateGroupResult createGroup(CreateGroupRequest createGroupRequest) throws IOException { public CreateGroupResult createGroup(CreateGroupRequest createGroupRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, CREATE_GROUP_COMMAND); String url = imClient.getUrl(SERVICE_NAME, CREATE_GROUP_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(createGroupRequest), null); return HttpUtil.post(url, createGroupRequest, CreateGroupResult.class);
return JsonUtil.str2Obj(result, CreateGroupResult.class);
} }
public GetGroupInfoResult getGroupInfo(GetGroupInfoRequest getGroupInfoRequest) throws IOException { public GetGroupInfoResult getGroupInfo(GetGroupInfoRequest getGroupInfoRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_GROUP_INFO_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_GROUP_INFO_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getGroupInfoRequest), null); return HttpUtil.post(url, getGroupInfoRequest, GetGroupInfoResult.class);
return JsonUtil.str2Obj(result, GetGroupInfoResult.class);
} }
public GetGroupMemberInfoResult getGroupMemberInfo(GetGroupMemberInfoRequest getGroupMemberInfoRequest) throws IOException { public GetGroupMemberInfoResult getGroupMemberInfo(GetGroupMemberInfoRequest getGroupMemberInfoRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_GROUP_MEMBER_INFO_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_GROUP_MEMBER_INFO_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getGroupMemberInfoRequest), null); return HttpUtil.post(url, getGroupMemberInfoRequest, GetGroupMemberInfoResult.class);
return JsonUtil.str2Obj(result, GetGroupMemberInfoResult.class);
} }
public ModifyGroupBaseInfoResult modifyGroupBaseInfo(ModifyGroupBaseInfoRequest modifyGroupBaseInfoRequest) throws IOException { public ModifyGroupBaseInfoResult modifyGroupBaseInfo(ModifyGroupBaseInfoRequest modifyGroupBaseInfoRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, MODIFY_GROUP_BASE_INFO_COMMAND); String url = imClient.getUrl(SERVICE_NAME, MODIFY_GROUP_BASE_INFO_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(modifyGroupBaseInfoRequest), null); return HttpUtil.post(url, modifyGroupBaseInfoRequest, ModifyGroupBaseInfoResult.class);
return JsonUtil.str2Obj(result, ModifyGroupBaseInfoResult.class);
} }
public AddGroupMemberResult addGroupMember(AddGroupMemberRequest addGroupMemberRequest) throws IOException { public AddGroupMemberResult addGroupMember(AddGroupMemberRequest addGroupMemberRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ADD_GROUP_MEMBER_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ADD_GROUP_MEMBER_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(addGroupMemberRequest), null); return HttpUtil.post(url, addGroupMemberRequest, AddGroupMemberResult.class);
return JsonUtil.str2Obj(result, AddGroupMemberResult.class);
} }
public DeleteGroupMemberResult deleteGroupMember(DeleteGroupMemberRequest deleteGroupMemberRequest) throws IOException { public DeleteGroupMemberResult deleteGroupMember(DeleteGroupMemberRequest deleteGroupMemberRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, DELETE_GROUP_MEMBER_COMMAND); String url = imClient.getUrl(SERVICE_NAME, DELETE_GROUP_MEMBER_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(deleteGroupMemberRequest), null); return HttpUtil.post(url, deleteGroupMemberRequest, DeleteGroupMemberResult.class);
return JsonUtil.str2Obj(result, DeleteGroupMemberResult.class);
} }
public ModifyGroupMemberInfoResult modifyGroupMemberInfo(ModifyGroupMemberInfoRequest modifyGroupMemberInfoRequest) throws IOException { public ModifyGroupMemberInfoResult modifyGroupMemberInfo(ModifyGroupMemberInfoRequest modifyGroupMemberInfoRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, MODIFY_GROUP_MEMBER_INFO_COMMAND); String url = imClient.getUrl(SERVICE_NAME, MODIFY_GROUP_MEMBER_INFO_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(modifyGroupMemberInfoRequest), null); return HttpUtil.post(url, modifyGroupMemberInfoRequest, ModifyGroupMemberInfoResult.class);
return JsonUtil.str2Obj(result, ModifyGroupMemberInfoResult.class);
} }
public DestroyGroupResult destroyGroup(DestroyGroupRequest destroyGroupRequest) throws IOException { public DestroyGroupResult destroyGroup(DestroyGroupRequest destroyGroupRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, DESTROY_GROUP_COMMAND); String url = imClient.getUrl(SERVICE_NAME, DESTROY_GROUP_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(destroyGroupRequest), null); return HttpUtil.post(url, destroyGroupRequest, DestroyGroupResult.class);
return JsonUtil.str2Obj(result, DestroyGroupResult.class);
} }
public GetJoinGroupListResult getJoinGroupList(GetJoinedGroupListRequest getJoinedGroupListRequest) throws IOException { public GetJoinGroupListResult getJoinGroupList(GetJoinedGroupListRequest getJoinedGroupListRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_JOINED_GROUP_LIST_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_JOINED_GROUP_LIST_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getJoinedGroupListRequest), null); return HttpUtil.post(url, getJoinedGroupListRequest, GetJoinGroupListResult.class);
return JsonUtil.str2Obj(result, GetJoinGroupListResult.class);
} }
public GetRoleInGroupResult getRoleInGroup(GetRoleInGroupRequest getRoleInGroupRequest) throws IOException { public GetRoleInGroupResult getRoleInGroup(GetRoleInGroupRequest getRoleInGroupRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_ROLE_IN_GROUP_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_ROLE_IN_GROUP_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getRoleInGroupRequest), null); return HttpUtil.post(url, getRoleInGroupRequest, GetRoleInGroupResult.class);
return JsonUtil.str2Obj(result, GetRoleInGroupResult.class);
} }
public ForbidSendMsgResult forbidSendMsg(ForbidSendMsgRequest forbidSendMsgRequest) throws IOException { public ForbidSendMsgResult forbidSendMsg(ForbidSendMsgRequest forbidSendMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FORBID_SEND_MSG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FORBID_SEND_MSG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(forbidSendMsgRequest), null); return HttpUtil.post(url, forbidSendMsgRequest, ForbidSendMsgResult.class);
return JsonUtil.str2Obj(result, ForbidSendMsgResult.class);
} }
public GetGroupShuttedUinResult getGroupShuttedUin(GetGroupShuttedUinRequest getGroupShuttedUinRequest) throws IOException { public GetGroupShuttedUinResult getGroupShuttedUin(GetGroupShuttedUinRequest getGroupShuttedUinRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_GROUP_SHUTTED_UIN_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_GROUP_SHUTTED_UIN_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getGroupShuttedUinRequest), null); return HttpUtil.post(url, getGroupShuttedUinRequest, GetGroupShuttedUinResult.class);
return JsonUtil.str2Obj(result, GetGroupShuttedUinResult.class);
} }
public SendGroupMsgResult sendGroupMsg(SendGroupMsgRequest sendGroupMsgRequest) throws IOException { public SendGroupMsgResult sendGroupMsg(SendGroupMsgRequest sendGroupMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, SEND_GROUP_MSG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, SEND_GROUP_MSG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(sendGroupMsgRequest), null); return HttpUtil.post(url, sendGroupMsgRequest, SendGroupMsgResult.class);
return JsonUtil.str2Obj(result, SendGroupMsgResult.class);
} }
public SendGroupSystemNotificationResult sendGroupSystemNotification(SendGroupSystemNotificationRequest sendGroupSystemNotificationRequest) throws IOException { public SendGroupSystemNotificationResult sendGroupSystemNotification(SendGroupSystemNotificationRequest sendGroupSystemNotificationRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, SEND_GROUP_SYSTEM_NOTIFICATION_COMMAND); String url = imClient.getUrl(SERVICE_NAME, SEND_GROUP_SYSTEM_NOTIFICATION_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(sendGroupSystemNotificationRequest), null); return HttpUtil.post(url, sendGroupSystemNotificationRequest, SendGroupSystemNotificationResult.class);
return JsonUtil.str2Obj(result, SendGroupSystemNotificationResult.class);
} }
public ChangeGroupOwnerResult changeGroupOwner(ChangeGroupOwnerRequest changeGroupOwnerRequest) throws IOException { public ChangeGroupOwnerResult changeGroupOwner(ChangeGroupOwnerRequest changeGroupOwnerRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, CHANGE_GROUP_OWNER_COMMAND); String url = imClient.getUrl(SERVICE_NAME, CHANGE_GROUP_OWNER_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(changeGroupOwnerRequest), null); return HttpUtil.post(url, changeGroupOwnerRequest, ChangeGroupOwnerResult.class);
return JsonUtil.str2Obj(result, ChangeGroupOwnerResult.class);
} }
public GroupMsgRecallResult groupMsgRecall(GroupMsgRecallRequest groupMsgRecallRequest) throws IOException { public GroupMsgRecallResult groupMsgRecall(GroupMsgRecallRequest groupMsgRecallRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GROUP_MSG_RECALL_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GROUP_MSG_RECALL_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(groupMsgRecallRequest), null); return HttpUtil.post(url, groupMsgRecallRequest, GroupMsgRecallResult.class);
return JsonUtil.str2Obj(result, GroupMsgRecallResult.class);
} }
public ImportGroupResult importGroup(ImportGroupRequest importGroupRequest) throws IOException { public ImportGroupResult importGroup(ImportGroupRequest importGroupRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IMPORT_GROUP_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IMPORT_GROUP_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(importGroupRequest), null); return HttpUtil.post(url, importGroupRequest, ImportGroupResult.class);
return JsonUtil.str2Obj(result, ImportGroupResult.class);
} }
public ImportGroupMsgResult importGroupMsg(ImportGroupMsgRequest importGroupMsgRequest) throws IOException { public ImportGroupMsgResult importGroupMsg(ImportGroupMsgRequest importGroupMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IMPORT_GROUP_MSG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IMPORT_GROUP_MSG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(importGroupMsgRequest), null); return HttpUtil.post(url, importGroupMsgRequest, ImportGroupMsgResult.class);
return JsonUtil.str2Obj(result, ImportGroupMsgResult.class);
} }
public ImportGroupMemberResult importGroupMember(ImportGroupMemberRequest importGroupMemberRequest) throws IOException { public ImportGroupMemberResult importGroupMember(ImportGroupMemberRequest importGroupMemberRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IMPORT_GROUP_MEMBER_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IMPORT_GROUP_MEMBER_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(importGroupMemberRequest), null); return HttpUtil.post(url, importGroupMemberRequest, ImportGroupMemberResult.class);
return JsonUtil.str2Obj(result, ImportGroupMemberResult.class);
} }
public SetUnreadMsgNumResult setUnreadMsgNum(SetUnreadMsgNumRequest setUnreadMsgNumRequest) throws IOException { public SetUnreadMsgNumResult setUnreadMsgNum(SetUnreadMsgNumRequest setUnreadMsgNumRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, SET_UNREAD_MSG_NUM_COMMAND); String url = imClient.getUrl(SERVICE_NAME, SET_UNREAD_MSG_NUM_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(setUnreadMsgNumRequest), null); return HttpUtil.post(url, setUnreadMsgNumRequest, SetUnreadMsgNumResult.class);
return JsonUtil.str2Obj(result, SetUnreadMsgNumResult.class);
} }
public DeleteGroupMsgBySenderResult deleteGroupMsgBySender(DeleteGroupMsgBySenderRequest deleteGroupMsgBySenderRequest) throws IOException { public DeleteGroupMsgBySenderResult deleteGroupMsgBySender(DeleteGroupMsgBySenderRequest deleteGroupMsgBySenderRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, DELETE_GROUP_MSG_BY_SENDER_COMMAND); String url = imClient.getUrl(SERVICE_NAME, DELETE_GROUP_MSG_BY_SENDER_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(deleteGroupMsgBySenderRequest), null); return HttpUtil.post(url, deleteGroupMsgBySenderRequest, DeleteGroupMsgBySenderResult.class);
return JsonUtil.str2Obj(result, DeleteGroupMsgBySenderResult.class);
} }
public GroupMsgGetSimpleResult groupMsgGetSimple(GroupMsgGetSimpleRequest groupMsgGetSimpleRequest) throws IOException { public GroupMsgGetSimpleResult groupMsgGetSimple(GroupMsgGetSimpleRequest groupMsgGetSimpleRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GROUP_MSG_GET_SIMPLE_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GROUP_MSG_GET_SIMPLE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(groupMsgGetSimpleRequest), null); return HttpUtil.post(url, groupMsgGetSimpleRequest, GroupMsgGetSimpleResult.class);
return JsonUtil.str2Obj(result, GroupMsgGetSimpleResult.class);
} }
public GetOnlineMemberNumResult getOnlineMemberNum(GetOnlineMemberNumRequest getOnlineMemberNumRequest) throws IOException { public GetOnlineMemberNumResult getOnlineMemberNum(GetOnlineMemberNumRequest getOnlineMemberNumRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_ONLINE_MEMBER_NUM_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_ONLINE_MEMBER_NUM_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getOnlineMemberNumRequest), null); return HttpUtil.post(url, getOnlineMemberNumRequest, GetOnlineMemberNumResult.class);
return JsonUtil.str2Obj(result, GetOnlineMemberNumResult.class);
} }
} }
...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient; ...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient;
import io.github.doocs.im.model.request.*; import io.github.doocs.im.model.request.*;
import io.github.doocs.im.model.response.*; import io.github.doocs.im.model.response.*;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -34,61 +33,51 @@ public class Member { ...@@ -34,61 +33,51 @@ public class Member {
public IMPushResult imPush(IMPushRequest imPushRequest) throws IOException { public IMPushResult imPush(IMPushRequest imPushRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_PUSH_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_PUSH_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imPushRequest), null); return HttpUtil.post(url, imPushRequest, IMPushResult.class);
return JsonUtil.str2Obj(result, IMPushResult.class);
} }
public IMSetAttrNameResult imSetAttrName(IMSetAttrNameRequest imSetAttrNameRequest) throws IOException { public IMSetAttrNameResult imSetAttrName(IMSetAttrNameRequest imSetAttrNameRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_SET_ATTR_NAME_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_SET_ATTR_NAME_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imSetAttrNameRequest), null); return HttpUtil.post(url, imSetAttrNameRequest, IMSetAttrNameResult.class);
return JsonUtil.str2Obj(result, IMSetAttrNameResult.class);
} }
public IMGetAttrNameResult imGetAttrName(IMGetAttrNameRequest imGetAttrNameRequest) throws IOException { public IMGetAttrNameResult imGetAttrName(IMGetAttrNameRequest imGetAttrNameRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_GET_ATTR_NAME_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_GET_ATTR_NAME_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imGetAttrNameRequest), null); return HttpUtil.post(url, imGetAttrNameRequest, IMGetAttrNameResult.class);
return JsonUtil.str2Obj(result, IMGetAttrNameResult.class);
} }
public IMGetAttrResult imGetAttr(IMGetAttrRequest imGetAttrRequest) throws IOException { public IMGetAttrResult imGetAttr(IMGetAttrRequest imGetAttrRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_GET_ATTR_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_GET_ATTR_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imGetAttrRequest), null); return HttpUtil.post(url, imGetAttrRequest, IMGetAttrResult.class);
return JsonUtil.str2Obj(result, IMGetAttrResult.class);
} }
public IMSetAttrResult imSetAttr(IMSetAttrRequest imSetAttrRequest) throws IOException { public IMSetAttrResult imSetAttr(IMSetAttrRequest imSetAttrRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_SET_ATTR_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_SET_ATTR_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imSetAttrRequest), null); return HttpUtil.post(url, imSetAttrRequest, IMSetAttrResult.class);
return JsonUtil.str2Obj(result, IMSetAttrResult.class);
} }
public IMRemoveAttrResult imRemoveAttr(IMRemoveAttrRequest imRemoveAttrRequest) throws IOException { public IMRemoveAttrResult imRemoveAttr(IMRemoveAttrRequest imRemoveAttrRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_REMOVE_ATTR_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_REMOVE_ATTR_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imRemoveAttrRequest), null); return HttpUtil.post(url, imRemoveAttrRequest, IMRemoveAttrResult.class);
return JsonUtil.str2Obj(result, IMRemoveAttrResult.class);
} }
public IMGetTagResult imGetTag(IMGetTagRequest imGetTagRequest) throws IOException { public IMGetTagResult imGetTag(IMGetTagRequest imGetTagRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_GET_TAG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_GET_TAG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imGetTagRequest), null); return HttpUtil.post(url, imGetTagRequest, IMGetTagResult.class);
return JsonUtil.str2Obj(result, IMGetTagResult.class);
} }
public IMAddTagResult imAddTag(IMAddTagRequest imAddTagRequest) throws IOException { public IMAddTagResult imAddTag(IMAddTagRequest imAddTagRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_ADD_TAG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_ADD_TAG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imAddTagRequest), null); return HttpUtil.post(url, imAddTagRequest, IMAddTagResult.class);
return JsonUtil.str2Obj(result, IMAddTagResult.class);
} }
public IMRemoveTagResult imRemoveTag(IMRemoveTagRequest imRemoveTagRequest) throws IOException { public IMRemoveTagResult imRemoveTag(IMRemoveTagRequest imRemoveTagRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_REMOVE_TAG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_REMOVE_TAG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imRemoveTagRequest), null); return HttpUtil.post(url, imRemoveTagRequest, IMRemoveTagResult.class);
return JsonUtil.str2Obj(result, IMRemoveTagResult.class);
} }
public IMRemoveAllTagsResult imRemoveAllTags(IMRemoveAllTagsRequest imRemoveAllTagsRequest) throws IOException { public IMRemoveAllTagsResult imRemoveAllTags(IMRemoveAllTagsRequest imRemoveAllTagsRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IM_REMOVE_ALL_TAGS_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IM_REMOVE_ALL_TAGS_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(imRemoveAllTagsRequest), null); return HttpUtil.post(url, imRemoveAllTagsRequest, IMRemoveAllTagsResult.class);
return JsonUtil.str2Obj(result, IMRemoveAllTagsResult.class);
} }
} }
...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient; ...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient;
import io.github.doocs.im.model.request.*; import io.github.doocs.im.model.request.*;
import io.github.doocs.im.model.response.*; import io.github.doocs.im.model.response.*;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -31,43 +30,36 @@ public class Message { ...@@ -31,43 +30,36 @@ public class Message {
public SendMsgResult sendMsg(SendMsgRequest sendMsgRequest) throws IOException { public SendMsgResult sendMsg(SendMsgRequest sendMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, SEND_MSG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, SEND_MSG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(sendMsgRequest), null); return HttpUtil.post(url, sendMsgRequest, SendMsgResult.class);
return JsonUtil.str2Obj(result, SendMsgResult.class);
} }
public BatchSendMsgResult batchSendMsg(BatchSendMsgRequest batchSendMsgRequest) throws IOException { public BatchSendMsgResult batchSendMsg(BatchSendMsgRequest batchSendMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, BATCH_SEND_MSG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, BATCH_SEND_MSG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(batchSendMsgRequest), null); return HttpUtil.post(url, batchSendMsgRequest, BatchSendMsgResult.class);
return JsonUtil.str2Obj(result, BatchSendMsgResult.class);
} }
public ImportMsgResult importMsg(ImportMsgRequest importMsgRequest) throws IOException { public ImportMsgResult importMsg(ImportMsgRequest importMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, IMPORT_MSG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, IMPORT_MSG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(importMsgRequest), null); return HttpUtil.post(url, importMsgRequest, ImportMsgResult.class);
return JsonUtil.str2Obj(result, ImportMsgResult.class);
} }
public AdminRoamMsgResult getRoamMsg(AdminGetRoamMsgRequest adminGetRoamMsgRequest) throws IOException { public AdminRoamMsgResult getRoamMsg(AdminGetRoamMsgRequest adminGetRoamMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ADMIN_GET_ROAM_MSG_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ADMIN_GET_ROAM_MSG_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(adminGetRoamMsgRequest), null); return HttpUtil.post(url, adminGetRoamMsgRequest, AdminRoamMsgResult.class);
return JsonUtil.str2Obj(result, AdminRoamMsgResult.class);
} }
public AdminMsgWithdrawResult msgWithdraw(AdminMsgWithdrawRequest adminMsgWithdrawRequest) throws IOException { public AdminMsgWithdrawResult msgWithdraw(AdminMsgWithdrawRequest adminMsgWithdrawRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ADMIN_MSG_WITHDRAW_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ADMIN_MSG_WITHDRAW_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(adminMsgWithdrawRequest), null); return HttpUtil.post(url, adminMsgWithdrawRequest, AdminMsgWithdrawResult.class);
return JsonUtil.str2Obj(result, AdminMsgWithdrawResult.class);
} }
public AdminSetMsgReadResult setMsgRead(AdminSetMsgReadRequest adminSetMsgReadRequest) throws IOException { public AdminSetMsgReadResult setMsgRead(AdminSetMsgReadRequest adminSetMsgReadRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ADMIN_SET_MSG_READ_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ADMIN_SET_MSG_READ_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(adminSetMsgReadRequest), null); return HttpUtil.post(url, adminSetMsgReadRequest, AdminSetMsgReadResult.class);
return JsonUtil.str2Obj(result, AdminSetMsgReadResult.class);
} }
public C2CUnreadMsgNumResult getC2CUnreadMsgNum(GetC2CUnreadMsgRequest getC2CUnreadMsgRequest) throws IOException { public C2cUnreadMsgNumResult getC2cUnreadMsgRequest(GetC2cUnreadMsgRequest getC2cUnreadMsgRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_C2C_UNREAD_MSG_NUM_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GET_C2C_UNREAD_MSG_NUM_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getC2CUnreadMsgRequest), null); return HttpUtil.post(url, getC2cUnreadMsgRequest, C2cUnreadMsgNumResult.class);
return JsonUtil.str2Obj(result, C2CUnreadMsgNumResult.class);
} }
} }
...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient; ...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient;
import io.github.doocs.im.model.request.*; import io.github.doocs.im.model.request.*;
import io.github.doocs.im.model.response.*; import io.github.doocs.im.model.response.*;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -32,31 +31,26 @@ public class Operation { ...@@ -32,31 +31,26 @@ public class Operation {
public SetNoSpeakingResult setNoSpeaking(SetNoSpeakingRequest setNoSpeakingRequest) throws IOException { public SetNoSpeakingResult setNoSpeaking(SetNoSpeakingRequest setNoSpeakingRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_OPEN_CONFIG, SET_NO_SPEAKING_COMMAND); String url = imClient.getUrl(SERVICE_NAME_OPEN_CONFIG, SET_NO_SPEAKING_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(setNoSpeakingRequest), null); return HttpUtil.post(url, setNoSpeakingRequest, SetNoSpeakingResult.class);
return JsonUtil.str2Obj(result, SetNoSpeakingResult.class);
} }
public GetNoSpeakingResult getNoSpeaking(GetNoSpeakingRequest getNoSpeakingRequest) throws IOException { public GetNoSpeakingResult getNoSpeaking(GetNoSpeakingRequest getNoSpeakingRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_OPEN_CONFIG, GET_NO_SPEAKING_COMMAND); String url = imClient.getUrl(SERVICE_NAME_OPEN_CONFIG, GET_NO_SPEAKING_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getNoSpeakingRequest), null); return HttpUtil.post(url, getNoSpeakingRequest, GetNoSpeakingResult.class);
return JsonUtil.str2Obj(result, GetNoSpeakingResult.class);
} }
public GetAppInfoResult getAppInfo(GetAppInfoRequest getAppInfoRequest) throws IOException { public GetAppInfoResult getAppInfo(GetAppInfoRequest getAppInfoRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_OPEN_CONFIG, GET_APP_INFO_COMMAND); String url = imClient.getUrl(SERVICE_NAME_OPEN_CONFIG, GET_APP_INFO_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getAppInfoRequest), null); return HttpUtil.post(url, getAppInfoRequest, GetAppInfoResult.class);
return JsonUtil.str2Obj(result, GetAppInfoResult.class);
} }
public GetHistoryResult getHistory(GetHistoryRequest getHistoryRequest) throws IOException { public GetHistoryResult getHistory(GetHistoryRequest getHistoryRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_OPEN_MSG, GET_HISTORY_COMMAND); String url = imClient.getUrl(SERVICE_NAME_OPEN_MSG, GET_HISTORY_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getHistoryRequest), null); return HttpUtil.post(url, getHistoryRequest, GetHistoryResult.class);
return JsonUtil.str2Obj(result, GetHistoryResult.class);
} }
public GetIpListResult getIpList(GetIpListRequest getIpListRequest) throws IOException { public GetIpListResult getIpList(GetIpListRequest getIpListRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_CONFIG, GET_IP_LIST_COMMAND); String url = imClient.getUrl(SERVICE_NAME_CONFIG, GET_IP_LIST_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(getIpListRequest), null); return HttpUtil.post(url, getIpListRequest, GetIpListResult.class);
return JsonUtil.str2Obj(result, GetIpListResult.class);
} }
} }
...@@ -6,7 +6,6 @@ import io.github.doocs.im.model.request.PortraitSetRequest; ...@@ -6,7 +6,6 @@ import io.github.doocs.im.model.request.PortraitSetRequest;
import io.github.doocs.im.model.response.PortraitGetResult; import io.github.doocs.im.model.response.PortraitGetResult;
import io.github.doocs.im.model.response.PortraitSetResult; import io.github.doocs.im.model.response.PortraitSetResult;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -28,13 +27,11 @@ public class Profile { ...@@ -28,13 +27,11 @@ public class Profile {
public PortraitSetResult portraitSet(PortraitSetRequest portraitSetRequest) throws IOException { public PortraitSetResult portraitSet(PortraitSetRequest portraitSetRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, PORTRAIT_SET_COMMAND); String url = imClient.getUrl(SERVICE_NAME, PORTRAIT_SET_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(portraitSetRequest), null); return HttpUtil.post(url, portraitSetRequest, PortraitSetResult.class);
return JsonUtil.str2Obj(result, PortraitSetResult.class);
} }
public PortraitGetResult portraitGet(PortraitGetRequest portraitGetRequest) throws IOException { public PortraitGetResult portraitGet(PortraitGetRequest portraitGetRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, PORTRAIT_GET_COMMAND); String url = imClient.getUrl(SERVICE_NAME, PORTRAIT_GET_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(portraitGetRequest), null); return HttpUtil.post(url, portraitGetRequest, PortraitGetResult.class);
return JsonUtil.str2Obj(result, PortraitGetResult.class);
} }
} }
...@@ -6,7 +6,6 @@ import io.github.doocs.im.model.request.GetRecentContactListRequest; ...@@ -6,7 +6,6 @@ import io.github.doocs.im.model.request.GetRecentContactListRequest;
import io.github.doocs.im.model.response.DeleteRecentContactResult; import io.github.doocs.im.model.response.DeleteRecentContactResult;
import io.github.doocs.im.model.response.GetRecentContactListResult; import io.github.doocs.im.model.response.GetRecentContactListResult;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -28,13 +27,11 @@ public class RecentContact { ...@@ -28,13 +27,11 @@ public class RecentContact {
public GetRecentContactListResult recentContactList(GetRecentContactListRequest recentContactListRequest) throws IOException { public GetRecentContactListResult recentContactList(GetRecentContactListRequest recentContactListRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GET_RECENT_CONTACT_LIST); String url = imClient.getUrl(SERVICE_NAME, GET_RECENT_CONTACT_LIST);
String result = HttpUtil.post(url, JsonUtil.obj2Str(recentContactListRequest), null); return HttpUtil.post(url, recentContactListRequest, GetRecentContactListResult.class);
return JsonUtil.str2Obj(result, GetRecentContactListResult.class);
} }
public DeleteRecentContactResult deleteRecentContact(DeleteRecentContactRequest deleteRecentContactRequest) throws IOException { public DeleteRecentContactResult deleteRecentContact(DeleteRecentContactRequest deleteRecentContactRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, DELETE_RECENT_CONTACT); String url = imClient.getUrl(SERVICE_NAME, DELETE_RECENT_CONTACT);
String result = HttpUtil.post(url, JsonUtil.obj2Str(deleteRecentContactRequest), null); return HttpUtil.post(url, deleteRecentContactRequest, DeleteRecentContactResult.class);
return JsonUtil.str2Obj(result, DeleteRecentContactResult.class);
} }
} }
...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient; ...@@ -4,7 +4,6 @@ import io.github.doocs.im.IMClient;
import io.github.doocs.im.model.request.*; import io.github.doocs.im.model.request.*;
import io.github.doocs.im.model.response.*; import io.github.doocs.im.model.response.*;
import io.github.doocs.im.util.HttpUtil; import io.github.doocs.im.util.HttpUtil;
import io.github.doocs.im.util.JsonUtil;
import java.io.IOException; import java.io.IOException;
...@@ -39,91 +38,76 @@ public class SNS { ...@@ -39,91 +38,76 @@ public class SNS {
public FriendAddResult friendAdd(FriendAddRequest friendAddRequest) throws IOException { public FriendAddResult friendAdd(FriendAddRequest friendAddRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_ADD_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_ADD_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendAddRequest), null); return HttpUtil.post(url, friendAddRequest, FriendAddResult.class);
return JsonUtil.str2Obj(result, FriendAddResult.class);
} }
public FriendImportResult friendImport(FriendImportRequest friendImportRequest) throws IOException { public FriendImportResult friendImport(FriendImportRequest friendImportRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_IMPORT_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_IMPORT_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendImportRequest), null); return HttpUtil.post(url, friendImportRequest, FriendImportResult.class);
return JsonUtil.str2Obj(result, FriendImportResult.class);
} }
public FriendUpdateResult friendUpdate(FriendUpdateRequest friendUpdateRequest) throws IOException { public FriendUpdateResult friendUpdate(FriendUpdateRequest friendUpdateRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_UPDATE_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_UPDATE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendUpdateRequest), null); return HttpUtil.post(url, friendUpdateRequest, FriendUpdateResult.class);
return JsonUtil.str2Obj(result, FriendUpdateResult.class);
} }
public FriendDeleteResult friendDelete(FriendDeleteRequest friendDeleteRequest) throws IOException { public FriendDeleteResult friendDelete(FriendDeleteRequest friendDeleteRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_DELETE_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_DELETE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendDeleteRequest), null); return HttpUtil.post(url, friendDeleteRequest, FriendDeleteResult.class);
return JsonUtil.str2Obj(result, FriendDeleteResult.class);
} }
public FriendDeleteAllResult friendDeleteAll(FriendDeleteAllRequest friendDeleteAllRequest) throws IOException { public FriendDeleteAllResult friendDeleteAll(FriendDeleteAllRequest friendDeleteAllRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_DELETE_ALL_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_DELETE_ALL_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendDeleteAllRequest), null); return HttpUtil.post(url, friendDeleteAllRequest, FriendDeleteAllResult.class);
return JsonUtil.str2Obj(result, FriendDeleteAllResult.class);
} }
public FriendCheckResult friendCheck(FriendCheckRequest friendCheckRequest) throws IOException { public FriendCheckResult friendCheck(FriendCheckRequest friendCheckRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_CHECK_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_CHECK_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendCheckRequest), null); return HttpUtil.post(url, friendCheckRequest, FriendCheckResult.class);
return JsonUtil.str2Obj(result, FriendCheckResult.class);
} }
public FriendGetResult friendGet(FriendGetRequest friendGetRequest) throws IOException { public FriendGetResult friendGet(FriendGetRequest friendGetRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_GET_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_GET_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendGetRequest), null); return HttpUtil.post(url, friendGetRequest, FriendGetResult.class);
return JsonUtil.str2Obj(result, FriendGetResult.class);
} }
public FriendGetListResult friendGetList(FriendGetListRequest friendGetListRequest) throws IOException { public FriendGetListResult friendGetList(FriendGetListRequest friendGetListRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, FRIEND_GET_LIST_COMMAND); String url = imClient.getUrl(SERVICE_NAME, FRIEND_GET_LIST_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(friendGetListRequest), null); return HttpUtil.post(url, friendGetListRequest, FriendGetListResult.class);
return JsonUtil.str2Obj(result, FriendGetListResult.class);
} }
public BlackListAddResult blackListAdd(BlackListAddRequest blackListAddRequest) throws IOException { public BlackListAddResult blackListAdd(BlackListAddRequest blackListAddRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_ADD_COMMAND); String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_ADD_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(blackListAddRequest), null); return HttpUtil.post(url, blackListAddRequest, BlackListAddResult.class);
return JsonUtil.str2Obj(result, BlackListAddResult.class);
} }
public BlackListDeleteResult blackListDelete(BlackListDeleteRequest blackListDeleteRequest) throws IOException { public BlackListDeleteResult blackListDelete(BlackListDeleteRequest blackListDeleteRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_DELETE_COMMAND); String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_DELETE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(blackListDeleteRequest), null); return HttpUtil.post(url, blackListDeleteRequest, BlackListDeleteResult.class);
return JsonUtil.str2Obj(result, BlackListDeleteResult.class);
} }
public BlackListGetResult blackListGet(BlackListGetRequest blackListGetRequest) throws IOException { public BlackListGetResult blackListGet(BlackListGetRequest blackListGetRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_GET_COMMAND); String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_GET_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(blackListGetRequest), null); return HttpUtil.post(url, blackListGetRequest, BlackListGetResult.class);
return JsonUtil.str2Obj(result, BlackListGetResult.class);
} }
public BlackListCheckResult blackListCheck(BlackListCheckRequest blackListCheckRequest) throws IOException { public BlackListCheckResult blackListCheck(BlackListCheckRequest blackListCheckRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_CHECK_COMMAND); String url = imClient.getUrl(SERVICE_NAME, BLACK_LIST_CHECK_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(blackListCheckRequest), null); return HttpUtil.post(url, blackListCheckRequest, BlackListCheckResult.class);
return JsonUtil.str2Obj(result, BlackListCheckResult.class);
} }
public GroupAddResult groupAdd(GroupAddRequest groupAddRequest) throws IOException { public GroupAddResult groupAdd(GroupAddRequest groupAddRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GROUP_ADD_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GROUP_ADD_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(groupAddRequest), null); return HttpUtil.post(url, groupAddRequest, GroupAddResult.class);
return JsonUtil.str2Obj(result, GroupAddResult.class);
} }
public GroupDeleteResult groupDelete(GroupDeleteRequest groupDeleteRequest) throws IOException { public GroupDeleteResult groupDelete(GroupDeleteRequest groupDeleteRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GROUP_DELETE_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GROUP_DELETE_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(groupDeleteRequest), null); return HttpUtil.post(url, groupDeleteRequest, GroupDeleteResult.class);
return JsonUtil.str2Obj(result, GroupDeleteResult.class);
} }
public GroupGetResult groupGet(GroupGetRequest groupGetRequest) throws IOException { public GroupGetResult groupGet(GroupGetRequest groupGetRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, GROUP_GET_COMMAND); String url = imClient.getUrl(SERVICE_NAME, GROUP_GET_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(groupGetRequest), null); return HttpUtil.post(url, groupGetRequest, GroupGetResult.class);
return JsonUtil.str2Obj(result, GroupGetResult.class);
} }
} }
...@@ -10,18 +10,18 @@ import java.util.List; ...@@ -10,18 +10,18 @@ import java.util.List;
* @since 2021/7/31 15:37 * @since 2021/7/31 15:37
*/ */
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class GetC2CUnreadMsgRequest extends GenericRequest { public class GetC2cUnreadMsgRequest extends GenericRequest {
@JsonProperty("To_Account") @JsonProperty("To_Account")
private String toAccount; private String toAccount;
@JsonProperty("Peer_Account") @JsonProperty("Peer_Account")
private List<String> peerAccount; private List<String> peerAccount;
public GetC2CUnreadMsgRequest(String toAccount) { public GetC2cUnreadMsgRequest(String toAccount) {
this(toAccount, null); this(toAccount, null);
} }
public GetC2CUnreadMsgRequest(String toAccount, List<String> peerAccount) { public GetC2cUnreadMsgRequest(String toAccount, List<String> peerAccount) {
this.toAccount = toAccount; this.toAccount = toAccount;
this.peerAccount = peerAccount; this.peerAccount = peerAccount;
} }
......
...@@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
* @author hyh * @author hyh
* @since 2021/07/28 20:39 * @since 2021/07/28 20:39
*/ */
public class C2CUnreadMsgNumListItem { public class C2cUnreadMsgNumListItem {
@JsonProperty("Peer_Account") @JsonProperty("Peer_Account")
private String peerAccount; private String peerAccount;
...@@ -31,7 +31,7 @@ public class C2CUnreadMsgNumListItem { ...@@ -31,7 +31,7 @@ public class C2CUnreadMsgNumListItem {
@Override @Override
public String toString() { public String toString() {
return "C2CUnreadMsgNumListItem{" + return "C2cUnreadMsgNumListItem{" +
"peerAccount='" + peerAccount + '\'' + "peerAccount='" + peerAccount + '\'' +
", unreadMsgNum='" + unreadMsgNum + '\'' + ", unreadMsgNum='" + unreadMsgNum + '\'' +
'}'; '}';
......
...@@ -8,21 +8,21 @@ import java.util.List; ...@@ -8,21 +8,21 @@ import java.util.List;
* @author hyh * @author hyh
* @since 2021/07/28 20:34 * @since 2021/07/28 20:34
*/ */
public class C2CUnreadMsgNumResult extends GenericResult { public class C2cUnreadMsgNumResult extends GenericResult {
@JsonProperty("C2CUnreadMsgNumList") @JsonProperty("C2CUnreadMsgNumList")
private List<C2CUnreadMsgNumListItem> unreadMsgNumList; private List<C2cUnreadMsgNumListItem> unreadMsgNumList;
public List<C2CUnreadMsgNumListItem> getUnreadMsgNumList() { public List<C2cUnreadMsgNumListItem> getUnreadMsgNumList() {
return unreadMsgNumList; return unreadMsgNumList;
} }
public void setUnreadMsgNumList(List<C2CUnreadMsgNumListItem> unreadMsgNumList) { public void setUnreadMsgNumList(List<C2cUnreadMsgNumListItem> unreadMsgNumList) {
this.unreadMsgNumList = unreadMsgNumList; this.unreadMsgNumList = unreadMsgNumList;
} }
@Override @Override
public String toString() { public String toString() {
return "C2CUnreadMsgNumResult{" + return "C2cUnreadMsgNumResult{" +
"unreadMsgNumList=" + unreadMsgNumList + "unreadMsgNumList=" + unreadMsgNumList +
'}'; '}';
} }
......
package io.github.doocs.im.util; package io.github.doocs.im.util;
import java.io.*; import okhttp3.*;
import java.net.HttpURLConnection;
import java.net.URL; import java.io.IOException;
import java.net.URLDecoder; import java.util.Objects;
import java.net.URLEncoder; import java.util.concurrent.TimeUnit;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
/** /**
* Http tool
*
* @author bingo * @author bingo
* @since 2021/7/28 14:55 * @since 2021/10/31 15:57
*/ */
public class HttpUtil { public class HttpUtil {
private static final String UTF_8 = StandardCharsets.UTF_8.name(); private static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
private HttpUtil() {
}
/**
* Send a get request
*
* @param url Url as string
* @return response
* @throws IOException IOException
*/
public static String get(String url) throws IOException {
return get(url, null);
}
/**
* Send a get request
*
* @param url Url as string
* @param headers Optional map with headers
* @return response Response as string
* @throws IOException IOException
*/
public static String get(String url,
Map<String, String> headers) throws IOException {
return fetch("GET", url, null, headers);
}
/**
* Send a post request
*
* @param url Url as string
* @param body Request body as string
* @param headers Optional map with headers
* @return response Response as string
* @throws IOException IOException
*/
public static String post(String url, String body,
Map<String, String> headers) throws IOException {
return fetch("POST", url, body, headers);
}
/**
* Send a post request
*
* @param url Url as string
* @param body Request body as string
* @return response Response as string
* @throws IOException IOException
*/
public static String post(String url, String body) throws IOException {
return post(url, body, null);
}
/** private static final OkHttpClient DEFAULT_CLIENT = new OkHttpClient.Builder()
* Post a json string .retryOnConnectionFailure(true)
* .connectTimeout(1000, TimeUnit.MICROSECONDS)
* @param url Url as string .readTimeout(1000, TimeUnit.MILLISECONDS)
* @param jsonStr a json string .writeTimeout(1000, TimeUnit.MILLISECONDS)
* @return response Response as string .build();
* @throws IOException IOException
*/
public static String postJson(String url, String jsonStr) throws IOException {
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json;charset=UTF-8");
return post(url, jsonStr, headers);
}
/**
* Post a form with parameters
*
* @param url Url as string
* @param params map with parameters/values
* @return response Response as string
* @throws IOException IOException
*/
public static String postForm(String url, Map<String, String> params)
throws IOException {
return postForm(url, params, null);
}
/**
* Post a form with parameters
*
* @param url Url as string
* @param params Map with parameters/values
* @param headers Optional map with headers
* @return response Response as string
* @throws IOException IOException
*/
public static String postForm(String url, Map<String, String> params,
Map<String, String> headers) throws IOException {
// set content type
if (headers == null) {
headers = new HashMap<>(2);
}
headers.put("Content-Type", "application/x-www-form-urlencoded");
// parse parameters
StringBuilder body = new StringBuilder();
if (params != null) {
boolean first = true;
for (String param : params.keySet()) {
if (first) {
first = false;
} else {
body.append("&");
}
String value = params.get(param);
body.append(URLEncoder.encode(param, UTF_8)).append("=");
body.append(URLEncoder.encode(value, UTF_8));
}
}
return post(url, body.toString(), headers);
}
/**
* Send a put request
*
* @param url Url as string
* @param body Request body as string
* @param headers Optional map with headers
* @return response Response as string
* @throws IOException IOException
*/
public static String put(String url, String body,
Map<String, String> headers) throws IOException {
return fetch("PUT", url, body, headers);
}
/** private HttpUtil() {
* Send a put request
*
* @param url Url as string
* @return response Response as string
* @throws IOException IOException
*/
public static String put(String url, String body) throws IOException {
return put(url, body, null);
}
/**
* Send a delete request
*
* @param url Url as string
* @param headers Optional map with headers
* @return response Response as string
* @throws IOException IOException
*/
public static String delete(String url,
Map<String, String> headers) throws IOException {
return fetch("DELETE", url, null, headers);
}
/**
* Send a delete request
*
* @param url Url as string
* @return response Response as string
* @throws IOException IOException
*/
public static String delete(String url) throws IOException {
return delete(url, null);
}
/**
* Append query parameters to given url
*
* @param url Url as string
* @param params Map with query parameters
* @return url Url with query parameters appended
* @throws IOException IOException
*/
public static String appendQueryParams(String url,
Map<String, String> params) throws IOException {
StringBuilder fullUrl = new StringBuilder(url);
if (params != null) {
boolean first = (fullUrl.toString().indexOf('?') == -1);
for (Map.Entry<String, String> entry : params.entrySet()) {
if (first) {
fullUrl.append('?');
first = false;
} else {
fullUrl.append('&');
}
String param = entry.getKey();
String value = entry.getValue();
fullUrl.append(URLEncoder.encode(param, UTF_8)).append('=');
fullUrl.append(URLEncoder.encode(value, UTF_8));
}
}
return fullUrl.toString();
}
/**
* Retrieve the query parameters from given url
*
* @param url Url containing query parameters
* @return params Map with query parameters
* @throws IOException IOException
*/
public static Map<String, String> getQueryParams(String url)
throws IOException {
Map<String, String> params = new HashMap<>(16);
int start = url.indexOf('?');
while (start != -1) {
// read parameter name
int equals = url.indexOf('=', start);
String param = equals == -1 ? url.substring(start + 1) : url.substring(start + 1, equals);
// read parameter value
String value = "";
if (equals != -1) {
start = url.indexOf('&', equals);
value = start == -1 ? url.substring(equals + 1) : url.substring(equals + 1, start);
}
params.put(URLDecoder.decode(param, UTF_8),
URLDecoder.decode(value, UTF_8));
}
return params;
}
/**
* Returns the url without query parameters
*
* @param url Url containing query parameters
* @return url Url without query parameters
*/
public static String removeQueryParams(String url) {
int q = url.indexOf('?');
return q == -1 ? url : url.substring(0, q);
}
/**
* Send a request
*
* @param method HTTP method, for example "GET" or "POST"
* @param url Url as string
* @param body Request body as string
* @param headers Optional map with headers
* @return response Response as string
* @throws IOException IOException
*/
public static String fetch(String method, String url, String body,
Map<String, String> headers) throws IOException {
// connection
URL u = new URL(url);
HttpURLConnection conn = (HttpURLConnection) u.openConnection();
conn.setConnectTimeout(120000);
conn.setReadTimeout(120000);
// method
if (method != null) {
conn.setRequestMethod(method);
} }
// headers public static String post(String url, String json) throws IOException {
if (headers != null) { RequestBody body = RequestBody.create(json, JSON);
headers.forEach(conn::addRequestProperty); Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try (Response response = DEFAULT_CLIENT.newCall(request).execute()) {
return Objects.requireNonNull(response.body()).string();
} }
// body
if (body != null) {
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(body.getBytes());
os.flush();
os.close();
} }
// response public static String post(String url, Object data) throws IOException {
InputStream is = conn.getInputStream(); return post(url, JsonUtil.obj2Str(data));
String response = streamToString(is);
// handle redirects
if (conn.getResponseCode() == 301) {
String location = conn.getHeaderField("Location");
return fetch(method, location, body, headers);
} }
return response; public static <T> T post(String url, Object data, Class<T> cls) throws IOException {
String result = post(url, JsonUtil.obj2Str(data));
return JsonUtil.str2Obj(result, cls);
} }
/** public static String get(String url) throws IOException {
* Read an input stream from conn into a string Request request = new Request.Builder()
* .url(url)
* @param in InputStream .build();
* @return InputStream as string
* @throws IOException IOException
*/
public static String streamToString(InputStream in) throws IOException {
InputStreamReader isr = new InputStreamReader(in, StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(isr);
String data; try (Response response = DEFAULT_CLIENT.newCall(request).execute()) {
StringBuilder out = new StringBuilder(); return Objects.requireNonNull(response.body()).string();
while ((data = br.readLine()) != null) {
out.append(data);
} }
br.close();
return out.toString();
} }
} }
...@@ -34,9 +34,9 @@ public class AccountTest { ...@@ -34,9 +34,9 @@ public class AccountTest {
@Test @Test
public void testAccountImport() throws IOException { public void testAccountImport() throws IOException {
AccountImportRequest request = new AccountImportRequest("test1"); AccountImportRequest request = new AccountImportRequest("user2");
request.setFaceUrl("http://www.qq.com"); request.setFaceUrl("http://www.qq.com");
request.setNick("bingo"); request.setNick("ylb");
AccountImportResult result = client.account.accountImport(request); AccountImportResult result = client.account.accountImport(request);
System.out.println(result); System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus()); Assert.assertEquals("OK", result.getActionStatus());
......
...@@ -97,9 +97,9 @@ public class MessageTest { ...@@ -97,9 +97,9 @@ public class MessageTest {
@Test @Test
public void testGetC2CUnreadMsgNum() throws IOException { public void testGetC2CUnreadMsgNum() throws IOException {
GetC2CUnreadMsgRequest request = new GetC2CUnreadMsgRequest("test2"); GetC2cUnreadMsgRequest request = new GetC2cUnreadMsgRequest("test2");
request.setPeerAccount(Arrays.asList("test1", "bingo")); request.setPeerAccount(Arrays.asList("test1", "bingo"));
C2CUnreadMsgNumResult result = client.message.getC2CUnreadMsgNum(request); C2cUnreadMsgNumResult result = client.message.getC2cUnreadMsgRequest(request);
System.out.println(result); System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus()); Assert.assertEquals("OK", result.getActionStatus());
} }
......
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