Unverified Commit 1f9caca2 authored by Yang Libin's avatar Yang Libin Committed by GitHub

feat: support client configuration (#47)

parent 50dd9de3
...@@ -22,7 +22,7 @@ Add the Maven dependency: ...@@ -22,7 +22,7 @@ Add the Maven dependency:
<dependency> <dependency>
<groupId>io.github.doocs</groupId> <groupId>io.github.doocs</groupId>
<artifactId>im-server-sdk-java</artifactId> <artifactId>im-server-sdk-java</artifactId>
<version>0.2.2</version> <version>0.2.3</version>
</dependency> </dependency>
``` ```
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<groupId>io.github.doocs</groupId> <groupId>io.github.doocs</groupId>
<artifactId>im-server-sdk-java</artifactId> <artifactId>im-server-sdk-java</artifactId>
<version>0.2.2</version> <version>0.2.3</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>qcloud-im-server-sdk-java</name> <name>qcloud-im-server-sdk-java</name>
......
package io.github.doocs.im;
import io.github.doocs.im.util.VersionInfoUtil;
/**
* @author bingo
* @since 2021/11/2 14:17
*/
public class ClientConfiguration {
private static final String DEFAULT_USER_AGENT = VersionInfoUtil.getDefaultUserAgent();
private static final int DEFAULT_MAX_RETRIES = 3;
/**
* default value, unit: milliseconds
*/
private static final long DEFAULT_CONNECT_TIMEOUT = 3000L;
private static final long DEFAULT_READ_TIMEOUT = 3000L;
private static final long DEFAULT_WRITE_TIMEOUT = 3000L;
private static final long DEFAULT_EXPIRE_TIME = 24 * 60 * 60L;
private int maxRetries = DEFAULT_MAX_RETRIES;
private long connectTimeout = DEFAULT_CONNECT_TIMEOUT;
private long readTimeout = DEFAULT_READ_TIMEOUT;
private long writeTimeout = DEFAULT_WRITE_TIMEOUT;
private long expireTime = DEFAULT_EXPIRE_TIME;
private String userAgent = DEFAULT_USER_AGENT;
public ClientConfiguration() {
}
public ClientConfiguration(int maxRetries, long connectTimeout, long readTimeout,
long writeTimeout, long expireTime, String userAgent) {
this.maxRetries = maxRetries;
this.connectTimeout = connectTimeout;
this.readTimeout = readTimeout;
this.writeTimeout = writeTimeout;
this.expireTime = expireTime;
this.userAgent = userAgent;
}
public int getMaxRetries() {
return maxRetries;
}
public void setMaxRetries(int maxRetries) {
this.maxRetries = maxRetries;
}
public long getConnectTimeout() {
return connectTimeout;
}
public void setConnectTimeout(long connectTimeout) {
this.connectTimeout = connectTimeout;
}
public long getReadTimeout() {
return readTimeout;
}
public void setReadTimeout(long readTimeout) {
this.readTimeout = readTimeout;
}
public long getWriteTimeout() {
return writeTimeout;
}
public void setWriteTimeout(long writeTimeout) {
this.writeTimeout = writeTimeout;
}
public long getExpireTime() {
return expireTime;
}
public void setExpireTime(long expireTime) {
this.expireTime = expireTime;
}
public String getUserAgent() {
return userAgent;
}
public void setUserAgent(String userAgent) {
this.userAgent = userAgent;
}
}
...@@ -3,7 +3,6 @@ package io.github.doocs.im; ...@@ -3,7 +3,6 @@ package io.github.doocs.im;
import io.github.doocs.im.core.*; import io.github.doocs.im.core.*;
import io.github.doocs.im.util.SigUtil; import io.github.doocs.im.util.SigUtil;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
...@@ -14,13 +13,10 @@ import java.util.concurrent.ThreadLocalRandom; ...@@ -14,13 +13,10 @@ import java.util.concurrent.ThreadLocalRandom;
public class ImClient { public class ImClient {
private final long sdkAppId; private final long sdkAppId;
private final String userId; private final String userId;
private final String key; private final String userSig;
private String userSig; private final ClientConfiguration config;
private long userSigExpireTs;
private static final String VERSION = "v4"; private static final String VERSION = "v4";
private static final long EXPIRE_TIME = 24 * 60 * 60L;
private static final ConcurrentHashMap<String, ImClient> IM_CLIENT = new ConcurrentHashMap<>();
private static final String FORMAT_URL = "https://console.tim.qq.com/%s/%s/%s?sdkappid=%d&identifier=%s&usersig=%s&random=%d&contenttype=json"; private static final String FORMAT_URL = "https://console.tim.qq.com/%s/%s/%s?sdkappid=%d&identifier=%s&usersig=%s&random=%d&contenttype=json";
public final Account account; public final Account account;
...@@ -32,20 +28,25 @@ public class ImClient { ...@@ -32,20 +28,25 @@ public class ImClient {
public final Operation operation; public final Operation operation;
public final RecentContact recentContact; public final RecentContact recentContact;
private static final ClientConfiguration DEFAULT_CONFIG = new ClientConfiguration();
public static ImClient getInstance(long sdkAppId, String userId, String key) { public static ImClient getInstance(long sdkAppId, String userId, String key) {
String identify = sdkAppId + "_" + userId; return new ImClient(sdkAppId, userId, key);
if (!IM_CLIENT.containsKey(identify)) { }
IM_CLIENT.putIfAbsent(identify, new ImClient(sdkAppId, userId, key));
} public static ImClient getInstance(long sdkAppId, String userId, String key, ClientConfiguration config) {
return IM_CLIENT.get(identify); return new ImClient(sdkAppId, userId, key, config);
} }
public ImClient(long sdkAppId, String userId, String key) { public ImClient(long sdkAppId, String userId, String key) {
this(sdkAppId, userId, key, DEFAULT_CONFIG);
}
public ImClient(long sdkAppId, String userId, String key, ClientConfiguration config) {
this.sdkAppId = sdkAppId; this.sdkAppId = sdkAppId;
this.userId = userId; this.userId = userId;
this.key = key; this.config = config;
this.userSig = SigUtil.genUserSig(sdkAppId, key, userId, EXPIRE_TIME); this.userSig = SigUtil.genUserSig(sdkAppId, key, userId, config.getExpireTime());
this.userSigExpireTs = System.currentTimeMillis() / 1000 + EXPIRE_TIME - 100;
account = new Account(this); account = new Account(this);
message = new Message(this); message = new Message(this);
...@@ -57,24 +58,13 @@ public class ImClient { ...@@ -57,24 +58,13 @@ public class ImClient {
recentContact = new RecentContact(this); recentContact = new RecentContact(this);
} }
public ClientConfiguration getConfig() {
return config;
}
public String getUrl(String serviceName, String command) { public String getUrl(String serviceName, String command) {
// 随机生成32位无符号整数
long random = ThreadLocalRandom.current().nextLong(0, 0x100000000L); long random = ThreadLocalRandom.current().nextLong(0, 0x100000000L);
String sig = getUserSig();
return String.format(FORMAT_URL, VERSION, serviceName, command, return String.format(FORMAT_URL, VERSION, serviceName, command,
sdkAppId, userId, sig, random); sdkAppId, userId, userSig, random);
}
private String getUserSig() {
long currentTs = System.currentTimeMillis() / 1000;
if (currentTs >= userSigExpireTs) {
synchronized (this) {
if (currentTs >= userSigExpireTs) {
userSig = SigUtil.genUserSig(sdkAppId, key, userId, EXPIRE_TIME);
userSigExpireTs = currentTs + EXPIRE_TIME - 100;
}
}
}
return userSig;
} }
} }
...@@ -30,31 +30,31 @@ public class Account { ...@@ -30,31 +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);
return HttpUtil.post(url, accountImportRequest, AccountImportResult.class); return HttpUtil.post(url, accountImportRequest, AccountImportResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, multiAccountImportRequest, MultiAccountImportResult.class); return HttpUtil.post(url, multiAccountImportRequest, MultiAccountImportResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, accountDeleteRequest, AccountDeleteResult.class); return HttpUtil.post(url, accountDeleteRequest, AccountDeleteResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, accountCheckRequest, AccountCheckResult.class); return HttpUtil.post(url, accountCheckRequest, AccountCheckResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, kickRequest, KickResult.class); return HttpUtil.post(url, kickRequest, KickResult.class, imClient.getConfig());
} }
public QueryOnlineStatusResult queryOnlineStatus(QueryOnlineStatusRequest queryOnlineStatusRequest) throws IOException { public QueryOnlineStatusResult queryOnlineStatus(QueryOnlineStatusRequest queryOnlineStatusRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_OPEN_IM, QUERY_ONLINE_STATUS_COMMAND); String url = imClient.getUrl(SERVICE_NAME_OPEN_IM, QUERY_ONLINE_STATUS_COMMAND);
return HttpUtil.post(url, queryOnlineStatusRequest, QueryOnlineStatusResult.class); return HttpUtil.post(url, queryOnlineStatusRequest, QueryOnlineStatusResult.class, imClient.getConfig());
} }
} }
...@@ -47,121 +47,121 @@ public class Group { ...@@ -47,121 +47,121 @@ 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);
return HttpUtil.post(url, getAppidGroupListRequest, GetAppidGroupListResult.class); return HttpUtil.post(url, getAppidGroupListRequest, GetAppidGroupListResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, createGroupRequest, CreateGroupResult.class); return HttpUtil.post(url, createGroupRequest, CreateGroupResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getGroupInfoRequest, GetGroupInfoResult.class); return HttpUtil.post(url, getGroupInfoRequest, GetGroupInfoResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getGroupMemberInfoRequest, GetGroupMemberInfoResult.class); return HttpUtil.post(url, getGroupMemberInfoRequest, GetGroupMemberInfoResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, modifyGroupBaseInfoRequest, ModifyGroupBaseInfoResult.class); return HttpUtil.post(url, modifyGroupBaseInfoRequest, ModifyGroupBaseInfoResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, addGroupMemberRequest, AddGroupMemberResult.class); return HttpUtil.post(url, addGroupMemberRequest, AddGroupMemberResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, deleteGroupMemberRequest, DeleteGroupMemberResult.class); return HttpUtil.post(url, deleteGroupMemberRequest, DeleteGroupMemberResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, modifyGroupMemberInfoRequest, ModifyGroupMemberInfoResult.class); return HttpUtil.post(url, modifyGroupMemberInfoRequest, ModifyGroupMemberInfoResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, destroyGroupRequest, DestroyGroupResult.class); return HttpUtil.post(url, destroyGroupRequest, DestroyGroupResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getJoinedGroupListRequest, GetJoinGroupListResult.class); return HttpUtil.post(url, getJoinedGroupListRequest, GetJoinGroupListResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getRoleInGroupRequest, GetRoleInGroupResult.class); return HttpUtil.post(url, getRoleInGroupRequest, GetRoleInGroupResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, forbidSendMsgRequest, ForbidSendMsgResult.class); return HttpUtil.post(url, forbidSendMsgRequest, ForbidSendMsgResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getGroupShuttedUinRequest, GetGroupShuttedUinResult.class); return HttpUtil.post(url, getGroupShuttedUinRequest, GetGroupShuttedUinResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, sendGroupMsgRequest, SendGroupMsgResult.class); return HttpUtil.post(url, sendGroupMsgRequest, SendGroupMsgResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, sendGroupSystemNotificationRequest, SendGroupSystemNotificationResult.class); return HttpUtil.post(url, sendGroupSystemNotificationRequest, SendGroupSystemNotificationResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, changeGroupOwnerRequest, ChangeGroupOwnerResult.class); return HttpUtil.post(url, changeGroupOwnerRequest, ChangeGroupOwnerResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, groupMsgRecallRequest, GroupMsgRecallResult.class); return HttpUtil.post(url, groupMsgRecallRequest, GroupMsgRecallResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, importGroupRequest, ImportGroupResult.class); return HttpUtil.post(url, importGroupRequest, ImportGroupResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, importGroupMsgRequest, ImportGroupMsgResult.class); return HttpUtil.post(url, importGroupMsgRequest, ImportGroupMsgResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, importGroupMemberRequest, ImportGroupMemberResult.class); return HttpUtil.post(url, importGroupMemberRequest, ImportGroupMemberResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, setUnreadMsgNumRequest, SetUnreadMsgNumResult.class); return HttpUtil.post(url, setUnreadMsgNumRequest, SetUnreadMsgNumResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, deleteGroupMsgBySenderRequest, DeleteGroupMsgBySenderResult.class); return HttpUtil.post(url, deleteGroupMsgBySenderRequest, DeleteGroupMsgBySenderResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, groupMsgGetSimpleRequest, GroupMsgGetSimpleResult.class); return HttpUtil.post(url, groupMsgGetSimpleRequest, GroupMsgGetSimpleResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getOnlineMemberNumRequest, GetOnlineMemberNumResult.class); return HttpUtil.post(url, getOnlineMemberNumRequest, GetOnlineMemberNumResult.class, imClient.getConfig());
} }
} }
...@@ -33,51 +33,51 @@ public class Member { ...@@ -33,51 +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);
return HttpUtil.post(url, imPushRequest, ImPushResult.class); return HttpUtil.post(url, imPushRequest, ImPushResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imSetAttrNameRequest, ImSetAttrNameResult.class); return HttpUtil.post(url, imSetAttrNameRequest, ImSetAttrNameResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imGetAttrNameRequest, ImGetAttrNameResult.class); return HttpUtil.post(url, imGetAttrNameRequest, ImGetAttrNameResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imGetAttrRequest, ImGetAttrResult.class); return HttpUtil.post(url, imGetAttrRequest, ImGetAttrResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imSetAttrRequest, ImSetAttrResult.class); return HttpUtil.post(url, imSetAttrRequest, ImSetAttrResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imRemoveAttrRequest, ImRemoveAttrResult.class); return HttpUtil.post(url, imRemoveAttrRequest, ImRemoveAttrResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imGetTagRequest, ImGetTagResult.class); return HttpUtil.post(url, imGetTagRequest, ImGetTagResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imAddTagRequest, ImAddTagResult.class); return HttpUtil.post(url, imAddTagRequest, ImAddTagResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imRemoveTagRequest, ImRemoveTagResult.class); return HttpUtil.post(url, imRemoveTagRequest, ImRemoveTagResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, imRemoveAllTagsRequest, ImRemoveAllTagsResult.class); return HttpUtil.post(url, imRemoveAllTagsRequest, ImRemoveAllTagsResult.class, imClient.getConfig());
} }
} }
...@@ -30,36 +30,36 @@ public class Message { ...@@ -30,36 +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);
return HttpUtil.post(url, sendMsgRequest, SendMsgResult.class); return HttpUtil.post(url, sendMsgRequest, SendMsgResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, batchSendMsgRequest, BatchSendMsgResult.class); return HttpUtil.post(url, batchSendMsgRequest, BatchSendMsgResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, importMsgRequest, ImportMsgResult.class); return HttpUtil.post(url, importMsgRequest, ImportMsgResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, adminGetRoamMsgRequest, AdminRoamMsgResult.class); return HttpUtil.post(url, adminGetRoamMsgRequest, AdminRoamMsgResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, adminMsgWithdrawRequest, AdminMsgWithdrawResult.class); return HttpUtil.post(url, adminMsgWithdrawRequest, AdminMsgWithdrawResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, adminSetMsgReadRequest, AdminSetMsgReadResult.class); return HttpUtil.post(url, adminSetMsgReadRequest, AdminSetMsgReadResult.class, imClient.getConfig());
} }
public C2cUnreadMsgNumResult getC2cUnreadMsgNum(GetC2cUnreadMsgRequest getC2cUnreadMsgRequest) throws IOException { public C2cUnreadMsgNumResult getC2cUnreadMsgNum(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);
return HttpUtil.post(url, getC2cUnreadMsgRequest, C2cUnreadMsgNumResult.class); return HttpUtil.post(url, getC2cUnreadMsgRequest, C2cUnreadMsgNumResult.class, imClient.getConfig());
} }
} }
...@@ -31,26 +31,26 @@ public class Operation { ...@@ -31,26 +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);
return HttpUtil.post(url, setNoSpeakingRequest, SetNoSpeakingResult.class); return HttpUtil.post(url, setNoSpeakingRequest, SetNoSpeakingResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getNoSpeakingRequest, GetNoSpeakingResult.class); return HttpUtil.post(url, getNoSpeakingRequest, GetNoSpeakingResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getAppInfoRequest, GetAppInfoResult.class); return HttpUtil.post(url, getAppInfoRequest, GetAppInfoResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getHistoryRequest, GetHistoryResult.class); return HttpUtil.post(url, getHistoryRequest, GetHistoryResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, getIpListRequest, GetIpListResult.class); return HttpUtil.post(url, getIpListRequest, GetIpListResult.class, imClient.getConfig());
} }
} }
...@@ -27,11 +27,11 @@ public class Profile { ...@@ -27,11 +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);
return HttpUtil.post(url, portraitSetRequest, PortraitSetResult.class); return HttpUtil.post(url, portraitSetRequest, PortraitSetResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, portraitGetRequest, PortraitGetResult.class); return HttpUtil.post(url, portraitGetRequest, PortraitGetResult.class, imClient.getConfig());
} }
} }
...@@ -27,11 +27,11 @@ public class RecentContact { ...@@ -27,11 +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);
return HttpUtil.post(url, recentContactListRequest, GetRecentContactListResult.class); return HttpUtil.post(url, recentContactListRequest, GetRecentContactListResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, deleteRecentContactRequest, DeleteRecentContactResult.class); return HttpUtil.post(url, deleteRecentContactRequest, DeleteRecentContactResult.class, imClient.getConfig());
} }
} }
...@@ -38,76 +38,76 @@ public class Sns { ...@@ -38,76 +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);
return HttpUtil.post(url, friendAddRequest, FriendAddResult.class); return HttpUtil.post(url, friendAddRequest, FriendAddResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, friendImportRequest, FriendImportResult.class); return HttpUtil.post(url, friendImportRequest, FriendImportResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, friendUpdateRequest, FriendUpdateResult.class); return HttpUtil.post(url, friendUpdateRequest, FriendUpdateResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, friendDeleteRequest, FriendDeleteResult.class); return HttpUtil.post(url, friendDeleteRequest, FriendDeleteResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, friendDeleteAllRequest, FriendDeleteAllResult.class); return HttpUtil.post(url, friendDeleteAllRequest, FriendDeleteAllResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, friendCheckRequest, FriendCheckResult.class); return HttpUtil.post(url, friendCheckRequest, FriendCheckResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, friendGetRequest, FriendGetResult.class); return HttpUtil.post(url, friendGetRequest, FriendGetResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, friendGetListRequest, FriendGetListResult.class); return HttpUtil.post(url, friendGetListRequest, FriendGetListResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, blackListAddRequest, BlackListAddResult.class); return HttpUtil.post(url, blackListAddRequest, BlackListAddResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, blackListDeleteRequest, BlackListDeleteResult.class); return HttpUtil.post(url, blackListDeleteRequest, BlackListDeleteResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, blackListGetRequest, BlackListGetResult.class); return HttpUtil.post(url, blackListGetRequest, BlackListGetResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, blackListCheckRequest, BlackListCheckResult.class); return HttpUtil.post(url, blackListCheckRequest, BlackListCheckResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, groupAddRequest, GroupAddResult.class); return HttpUtil.post(url, groupAddRequest, GroupAddResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, groupDeleteRequest, GroupDeleteResult.class); return HttpUtil.post(url, groupDeleteRequest, GroupDeleteResult.class, imClient.getConfig());
} }
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);
return HttpUtil.post(url, groupGetRequest, GroupGetResult.class); return HttpUtil.post(url, groupGetRequest, GroupGetResult.class, imClient.getConfig());
} }
} }
package io.github.doocs.im.util; package io.github.doocs.im.util;
import io.github.doocs.im.ClientConfiguration;
import okhttp3.*; import okhttp3.*;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
* HTTP tool
*
* @author bingo * @author bingo
* @since 2021/10/31 15:57 * @since 2021/10/31 15:57
*/ */
public class HttpUtil { public class HttpUtil {
private static final MediaType JSON = MediaType.get("application/json; charset=utf-8"); private static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
private static final String USER_AGENT_KEY = "User-Agent";
private static final ClientConfiguration DEFAULT_CONFIG = new ClientConfiguration();
private static final String DEFAULT_USER_AGENT = DEFAULT_CONFIG.getUserAgent();
private static final OkHttpClient DEFAULT_CLIENT = new OkHttpClient.Builder() private static final OkHttpClient DEFAULT_CLIENT = new OkHttpClient.Builder()
.retryOnConnectionFailure(true) .retryOnConnectionFailure(DEFAULT_CONFIG.getMaxRetries() > 0)
.connectTimeout(1000, TimeUnit.MICROSECONDS) .connectTimeout(DEFAULT_CONFIG.getConnectTimeout(), TimeUnit.MILLISECONDS)
.readTimeout(1000, TimeUnit.MILLISECONDS) .readTimeout(DEFAULT_CONFIG.getReadTimeout(), TimeUnit.MILLISECONDS)
.writeTimeout(1000, TimeUnit.MILLISECONDS) .writeTimeout(DEFAULT_CONFIG.getWriteTimeout(), TimeUnit.MILLISECONDS)
.build(); .build();
private HttpUtil() { private HttpUtil() {
} }
public static String post(String url, String json) throws IOException { public static String post(String url, String json, ClientConfiguration config) throws IOException {
OkHttpClient httpClient = DEFAULT_CLIENT;
if (config != null) {
httpClient = DEFAULT_CLIENT.newBuilder()
.connectTimeout(config.getConnectTimeout(), TimeUnit.MILLISECONDS)
.readTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS)
.writeTimeout(config.getWriteTimeout(), TimeUnit.MILLISECONDS)
.retryOnConnectionFailure(config.getMaxRetries() > 0)
.build();
}
Map<String, String> headers = new HashMap<>(2);
headers.put(USER_AGENT_KEY, config == null || config.getUserAgent() == null ? DEFAULT_USER_AGENT : config.getUserAgent());
return post(url, json, httpClient, headers);
}
public static String post(String url, String json, OkHttpClient httpClient, Map<String, String> headers) throws IOException {
RequestBody body = RequestBody.create(json, JSON); RequestBody body = RequestBody.create(json, JSON);
Headers.Builder hb = new Headers.Builder();
if (headers != null && !headers.isEmpty()) {
headers.forEach(hb::add);
}
Request request = new Request.Builder() Request request = new Request.Builder()
.url(url) .url(url)
.headers(hb.build())
.post(body) .post(body)
.build(); .build();
try (Response response = DEFAULT_CLIENT.newCall(request).execute()) { try (Response response = httpClient.newCall(request).execute()) {
return Objects.requireNonNull(response.body()).string(); return Objects.requireNonNull(response.body()).string();
} }
} }
public static String post(String url, Object data) throws IOException { public static <T> T post(String url, Object data, Class<T> cls, ClientConfiguration config) throws IOException {
return post(url, JsonUtil.obj2Str(data)); String result = post(url, JsonUtil.obj2Str(data), config);
return JsonUtil.str2Obj(result, cls);
} }
public static <T> T post(String url, Object data, Class<T> cls) throws IOException { public static <T> T post(String url, Object data, Class<T> cls) throws IOException {
String result = post(url, JsonUtil.obj2Str(data)); return post(url, data, cls, null);
return JsonUtil.str2Obj(result, cls);
} }
public static String get(String url) throws IOException { public static String get(String url) throws IOException {
Request request = new Request.Builder() Request request = new Request.Builder()
.url(url) .url(url)
.build(); .build();
try (Response response = DEFAULT_CLIENT.newCall(request).execute()) { try (Response response = DEFAULT_CLIENT.newCall(request).execute()) {
return Objects.requireNonNull(response.body()).string(); return Objects.requireNonNull(response.body()).string();
} }
......
package io.github.doocs.im.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* Version tool
*
* @author bingo
* @since 2021/11/2 14:21
*/
public class VersionInfoUtil {
private static String version = null;
private static String defaultUserAgent = null;
private static final String VERSION_INFO_FILE = "version.properties";
private static final String USER_AGENT_PREFIX = "qcloud-im-server-sdk-java";
public static String getDefaultUserAgent() {
if (defaultUserAgent == null) {
String osName = System.getProperty("os.name");
String osVersion = System.getProperty("os.version");
String osArch = System.getProperty("os.arch");
String javaVersion = System.getProperty("java.version");
defaultUserAgent = String.format("%s/%s(%s/%s/%s;%s)", USER_AGENT_PREFIX, getVersion(), osName, osVersion, osArch, javaVersion);
}
return defaultUserAgent;
}
private static String getVersion() {
if (version == null) {
init();
}
return version;
}
private static void init() {
Properties versionProperties = new Properties();
try (InputStream is = VersionInfoUtil.class.getClassLoader().getResourceAsStream(VERSION_INFO_FILE)) {
if (is != null) {
versionProperties.load(is);
version = versionProperties.getProperty("version");
}
} catch (IOException e) {
version = "unknown-version";
}
}
}
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