比较大的改动:重构了HttpClient部分

This commit is contained in:
jinyu
2015-08-18 22:18:09 +08:00
parent 7e054be6fa
commit dd186abd09
120 changed files with 4042 additions and 1541 deletions
@@ -66,13 +66,11 @@ public class WeixinSuiteProxy {
new SuiteTicketHolder(suite.getId(), suite.getSecret(),
tokenStorager)));
}
if (suites.length == 1) {
this.suiteMap.put(null, suiteMap.get(suites[0].getId()));
}
this.suiteMap.put(null, suiteMap.get(suites[0].getId()));
}
/**
* 单一套件获取API
* 只关注第一个套件获取API(如果只有一个套件
*
* @see com.foxinmy.weixin4j.qy.api.SuiteApi
* @return API实例
@@ -92,6 +90,6 @@ public class WeixinSuiteProxy {
public SuiteApi api(String suiteId) {
return this.suiteMap.get(suiteId);
}
public final static String VERSION = "1.5.3";
}
@@ -46,7 +46,7 @@ public class AgentApi extends QyApi {
public AgentInfo getAgent(int agentid) throws WeixinException {
String agent_get_uri = getRequestUri("agent_get_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(agent_get_uri,
WeixinResponse response = weixinExecutor.post(String.format(agent_get_uri,
token.getAccessToken(), agentid));
JSONObject jsonObj = response.getAsJson();
AgentInfo agent = JSON.toJavaObject(jsonObj, AgentInfo.class);
@@ -75,7 +75,7 @@ public class AgentApi extends QyApi {
public JsonResult setAgent(AgentSetter agentSet) throws WeixinException {
String agent_set_uri = getRequestUri("agent_set_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(agent_set_uri, token.getAccessToken()),
JSON.toJSONString(agentSet, typeFilter));
return response.getAsJsonResult();
@@ -109,7 +109,7 @@ public class AgentApi extends QyApi {
public List<AgentOverview> listAgentOverview() throws WeixinException {
String agent_list_uri = getRequestUri("agent_list_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.get(String.format(agent_list_uri,
WeixinResponse response = weixinExecutor.get(String.format(agent_list_uri,
token.getAccessToken()));
return JSON.parseArray(response.getAsJson().getString("agentlist"),
@@ -55,7 +55,7 @@ public class BatchApi extends QyApi {
obj.putAll(parameter.getParameter());
obj.put("callback", callback);
obj.put("invite_tips", tips);
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(batch_inviteuser_uri, token.getAccessToken()),
obj.toJSONString());
return response.getAsJson().getString("jobid");
@@ -93,7 +93,7 @@ public class BatchApi extends QyApi {
JSONObject obj = new JSONObject();
obj.put("media_id", mediaId);
obj.put("callback", callback);
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(batchUrl, token.getAccessToken()),
obj.toJSONString());
return response.getAsJson().getString("jobid");
@@ -164,7 +164,7 @@ public class BatchApi extends QyApi {
public BatchResult getBatchResult(String jobId) throws WeixinException {
Token token = tokenHolder.getToken();
String batch_getresult_uri = getRequestUri("batch_getresult_uri");
WeixinResponse response = weixinClient.get(String.format(
WeixinResponse response = weixinExecutor.get(String.format(
batch_getresult_uri, token.getAccessToken(), jobId));
return response.getAsObject(new TypeReference<BatchResult>() {
});
@@ -54,7 +54,7 @@ public class ChatApi extends QyApi {
}
String message_chat_create_uri = getRequestUri("message_chat_create_uri");
Token token = tokenHolder.getToken();
weixinClient.post(
weixinExecutor.post(
String.format(message_chat_create_uri, token.getAccessToken()),
obj.toJSONString());
return chatId;
@@ -74,7 +74,7 @@ public class ChatApi extends QyApi {
public ChatInfo getChat(String chatId) throws WeixinException {
String message_chat_get_uri = getRequestUri("message_chat_get_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.get(String.format(
WeixinResponse response = weixinExecutor.get(String.format(
message_chat_get_uri, token.getAccessToken(), chatId));
return response.getAsJson().getObject("chat_info", ChatInfo.class);
}
@@ -106,7 +106,7 @@ public class ChatApi extends QyApi {
obj.put("del_user_list", deleteUsers);
String message_chat_update_uri = getRequestUri("message_chat_update_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(message_chat_update_uri, token.getAccessToken()),
obj.toJSONString());
return response.getAsJsonResult();
@@ -131,7 +131,7 @@ public class ChatApi extends QyApi {
obj.put("op_user", operator);
String message_chat_quit_uri = getRequestUri("message_chat_quit_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(message_chat_quit_uri, token.getAccessToken()),
obj.toJSONString());
return response.getAsJsonResult();
@@ -158,7 +158,7 @@ public class ChatApi extends QyApi {
chat.put("id", targetId);
String message_chat_clearnotify_uri = getRequestUri("message_chat_clearnotify_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(message_chat_clearnotify_uri,
token.getAccessToken()),
String.format("{\"op_user\": \"%s\",\"chat\":%s", owner,
@@ -185,7 +185,7 @@ public class ChatApi extends QyApi {
mute.put("user_mute_list", chatMutes);
String message_chat_setmute_uri = getRequestUri("message_chat_setmute_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient
WeixinResponse response = weixinExecutor
.post(String.format(message_chat_setmute_uri,
token.getAccessToken()), mute.toJSONString());
return JSON.parseArray(response.getAsJson().getString("invaliduser"),
@@ -217,7 +217,7 @@ public class ChatApi extends QyApi {
msg.put(msgtype, tuple);
String message_chat_send_uri = getRequestUri("message_chat_send_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(message_chat_send_uri, token.getAccessToken()),
msg.toJSONString());
return response.getAsJsonResult();
@@ -35,7 +35,7 @@ public class HelperApi extends QyApi {
public List<String> getCallbackip() throws WeixinException {
String getcallbackip_uri = getRequestUri("getcallbackip_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(getcallbackip_uri,
WeixinResponse response = weixinExecutor.post(String.format(getcallbackip_uri,
token.getAccessToken()));
return JSON.parseArray(response.getAsJson().getString("ip_list"),
String.class);
@@ -21,11 +21,13 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.PropertyFilter;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.ContentType;
import com.foxinmy.weixin4j.http.Header;
import com.foxinmy.weixin4j.http.HttpGet;
import com.foxinmy.weixin4j.http.HttpClientException;
import com.foxinmy.weixin4j.http.HttpHeaders;
import com.foxinmy.weixin4j.http.HttpMethod;
import com.foxinmy.weixin4j.http.HttpParams;
import com.foxinmy.weixin4j.http.HttpRequest;
import com.foxinmy.weixin4j.http.HttpResponse;
import com.foxinmy.weixin4j.http.apache.FormBodyPart;
import com.foxinmy.weixin4j.http.apache.HttpHeaders;
import com.foxinmy.weixin4j.http.apache.InputStreamBody;
import com.foxinmy.weixin4j.http.weixin.JsonResult;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
@@ -43,13 +45,13 @@ import com.foxinmy.weixin4j.qy.model.User;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.tuple.MpArticle;
import com.foxinmy.weixin4j.type.MediaType;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.ErrorUtil;
import com.foxinmy.weixin4j.util.FileUtil;
import com.foxinmy.weixin4j.util.IOUtil;
import com.foxinmy.weixin4j.util.ObjectId;
import com.foxinmy.weixin4j.util.StringUtil;
import com.foxinmy.weixin4j.util.Weixin4jConfigUtil;
import com.foxinmy.weixin4j.util.Weixin4jConst;
import com.foxinmy.weixin4j.util.WeixinErrorUtil;
/**
* 媒体相关API
@@ -124,7 +126,7 @@ public class MediaApi extends QyApi {
WeixinResponse response = null;
if (agentid > 0) {
String material_media_upload_uri = getRequestUri("material_media_upload_uri");
response = weixinClient.post(String.format(
response = weixinExecutor.post(String.format(
material_media_upload_uri, token.getAccessToken(),
mediaType.name(), agentid), new FormBodyPart("media",
new InputStreamBody(new ByteArrayInputStream(content),
@@ -133,8 +135,8 @@ public class MediaApi extends QyApi {
return new MediaUploadResult(response.getAsJson().getString(
"media_id"), mediaType, new Date());
} else {
String file_upload_uri = getRequestUri("file_upload_uri");
response = weixinClient.post(String.format(file_upload_uri,
String media_upload_uri = getRequestUri("media_upload_uri");
response = weixinExecutor.post(String.format(media_upload_uri,
token.getAccessToken(), mediaType.name()),
new FormBodyPart("media", new InputStreamBody(
new ByteArrayInputStream(content), mediaType
@@ -145,8 +147,8 @@ public class MediaApi extends QyApi {
obj.getObject("type", MediaType.class), new Date(
obj.getLong("created_at") * 1000l));
/*
* return response.getAsObject(new TypeReference<MediaResult>()
* { });
* return response.getAsObject(new
* TypeReference<MediaUploadResult>() { });
*/
}
} finally {
@@ -174,7 +176,7 @@ public class MediaApi extends QyApi {
*/
public File downloadMediaFile(int agentid, String mediaId)
throws WeixinException {
String media_path = ConfigUtil.getValue("media_path",
String media_path = Weixin4jConfigUtil.getValue("media_path",
Weixin4jConst.DEFAULT_MEDIA_PATH);
final String prefixName = String.format("%d_%s.", agentid, mediaId);
File[] files = new File(media_path).listFiles(new FilenameFilter() {
@@ -230,45 +232,48 @@ public class MediaApi extends QyApi {
throws WeixinException {
Token token = tokenHolder.getToken();
try {
HttpGet method = null;
HttpRequest request = null;
if (agentid > 0) {
String material_media_download_uri = getRequestUri("material_media_download_uri");
method = new HttpGet(String.format(material_media_download_uri,
token.getAccessToken(), mediaId, agentid));
request = new HttpRequest(HttpMethod.GET, String.format(
material_media_download_uri, token.getAccessToken(),
mediaId, agentid));
} else {
String meida_download_uri = getRequestUri("meida_download_uri");
method = new HttpGet(String.format(meida_download_uri,
token.getAccessToken(), mediaId));
String media_download_uri = getRequestUri("media_download_uri");
request = new HttpRequest(HttpMethod.GET, String.format(
media_download_uri, token.getAccessToken(), mediaId));
}
HttpResponse response = weixinClient.execute(method);
byte[] content = response.getContent();
String fileName = "";
Header contentType = response
.getFirstHeader(HttpHeaders.CONTENT_TYPE);
Header disposition = response.getFirstHeader("Content-disposition");
if (contentType.getValue().contains(
ContentType.APPLICATION_JSON.getMimeType())
|| (disposition != null && disposition.getValue().indexOf(
".json") > 0)) {
HttpParams params = weixinExecutor.getExecuteParams();
request.setParams(params);
HttpResponse response = weixinExecutor.getExecuteClient().execute(
request);
byte[] content = IOUtil.toByteArray(response.getBody());
HttpHeaders headers = response.getHeaders();
String contentType = headers.getFirst(HttpHeaders.CONTENT_TYPE);
String disposition = headers
.getFirst(HttpHeaders.CONTENT_DISPOSITION);
if (contentType
.contains(ContentType.APPLICATION_JSON.getMimeType())
|| (disposition != null && disposition.indexOf(".json") > 0)) {
JsonResult jsonResult = JSON.parseObject(content, 0,
content.length, Consts.UTF_8.newDecoder(),
JsonResult.class);
if (jsonResult.getCode() != 0) {
if (StringUtil.isBlank(jsonResult.getDesc())) {
jsonResult.setDesc(ErrorUtil.getText(Integer
jsonResult.setDesc(WeixinErrorUtil.getText(Integer
.toString(jsonResult.getCode())));
}
throw new WeixinException(Integer.toString(jsonResult
.getCode()), jsonResult.getDesc());
}
}
if (StringUtil.isBlank(fileName)) {
fileName = String.format("%s.%s", mediaId, contentType
.getValue().split("/")[1]);
}
String fileName = String.format("%s.%s", mediaId,
contentType.split("/")[1]);
return new MediaDownloadResult(content,
ContentType.create(contentType.getValue()), fileName);
ContentType.create(contentType), fileName);
} catch (IOException e) {
throw new WeixinException("I/O Error on getBody");
} catch (HttpClientException e) {
throw new WeixinException(e);
}
}
@@ -299,7 +304,7 @@ public class MediaApi extends QyApi {
JSONObject news = new JSONObject();
news.put("articles", articles);
obj.put("mpnews", news);
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(material_article_upload_uri,
token.getAccessToken()), obj.toJSONString());
@@ -322,7 +327,7 @@ public class MediaApi extends QyApi {
throws WeixinException {
Token token = tokenHolder.getToken();
String material_media_del_uri = getRequestUri("material_media_del_uri");
WeixinResponse response = weixinClient.get(String.format(
WeixinResponse response = weixinExecutor.get(String.format(
material_media_del_uri, token.getAccessToken(), mediaId,
agentid));
return response.getAsJsonResult();
@@ -375,7 +380,7 @@ public class MediaApi extends QyApi {
news.put("articles", articles);
obj.put("mpnews", news);
obj.put("media_id", mediaId);
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(material_article_update_uri,
token.getAccessToken()), obj.toJSONString());
@@ -396,7 +401,7 @@ public class MediaApi extends QyApi {
public MediaCounter countMaterialMedia(int agentid) throws WeixinException {
Token token = tokenHolder.getToken();
String material_media_count_uri = getRequestUri("material_media_count_uri");
WeixinResponse response = weixinClient.get(String.format(
WeixinResponse response = weixinExecutor.get(String.format(
material_media_count_uri, token.getAccessToken(), agentid));
JSONObject result = response.getAsJson();
MediaCounter counter = JSON.toJavaObject(result, MediaCounter.class);
@@ -433,7 +438,7 @@ public class MediaApi extends QyApi {
mediaType == MediaType.news ? "mpnews" : mediaType.name());
obj.put("offset", pageable.getOffset());
obj.put("count", pageable.getPageSize());
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(material_media_list_uri, token.getAccessToken()),
obj.toJSONString());
obj = response.getAsJson();
@@ -53,7 +53,7 @@ public class MenuApi extends QyApi {
Token token = tokenHolder.getToken();
JSONObject obj = new JSONObject();
obj.put("button", btnList);
WeixinResponse response = weixinClient
WeixinResponse response = weixinExecutor
.post(String.format(menu_create_uri, token.getAccessToken(),
agentid), JSON.toJSONString(obj, new NameFilter() {
@Override
@@ -93,7 +93,7 @@ public class MenuApi extends QyApi {
public List<Button> getMenu(int agentid) throws WeixinException {
String menu_get_uri = getRequestUri("menu_get_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.get(String.format(menu_get_uri,
WeixinResponse response = weixinExecutor.get(String.format(menu_get_uri,
token.getAccessToken(), agentid));
JSONArray buttons = response.getAsJson().getJSONObject("menu")
@@ -125,7 +125,7 @@ public class MenuApi extends QyApi {
public JsonResult deleteMenu(int agentid) throws WeixinException {
String menu_delete_uri = getRequestUri("menu_delete_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.get(String.format(
WeixinResponse response = weixinExecutor.get(String.format(
menu_delete_uri, token.getAccessToken(), agentid));
return response.getAsJsonResult();
@@ -80,7 +80,7 @@ public class NotifyApi extends QyApi {
}
String message_send_uri = getRequestUri("message_send_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(message_send_uri, token.getAccessToken()),
obj.toJSONString());
@@ -8,7 +8,7 @@ import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Consts;
import com.foxinmy.weixin4j.qy.model.OUserInfo;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.Weixin4jConfigUtil;
/**
* 企业号oauth授权
@@ -35,7 +35,7 @@ public class OauthApi extends QyApi {
*/
public String getUserAuthorizeURL() {
String corpId = DEFAULT_WEIXIN_ACCOUNT.getId();
String redirectUri = ConfigUtil.getValue("user_oauth_redirect_uri");
String redirectUri = Weixin4jConfigUtil.getValue("user_oauth_redirect_uri");
return getUserAuthorizeURL(corpId, redirectUri, "state");
}
@@ -73,7 +73,7 @@ public class OauthApi extends QyApi {
*/
public String getThirdAuthorizeURL() {
String corpId = DEFAULT_WEIXIN_ACCOUNT.getId();
String redirectUri = ConfigUtil.getValue("third_oauth_redirect_uri");
String redirectUri = Weixin4jConfigUtil.getValue("third_oauth_redirect_uri");
return getThirdAuthorizeURL(corpId, redirectUri, "state");
}
@@ -118,7 +118,7 @@ public class OauthApi extends QyApi {
public OUserInfo getOUserInfoByCode(String providerToken, String authCode)
throws WeixinException {
String oauth_logininfo_uri = getRequestUri("oauth_logininfo_uri");
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(oauth_logininfo_uri, providerToken),
String.format("{\"auth_code\":\"%s\"}", authCode));
return JSON.parseObject(response.getAsString(), OUserInfo.class);
@@ -135,7 +135,7 @@ public class OauthApi extends QyApi {
* @return
*/
public String getSuiteAuthorizeURL(String suiteId, String preAuthCode) {
String redirectUri = ConfigUtil.getValue("suite_oauth_redirect_uri");
String redirectUri = Weixin4jConfigUtil.getValue("suite_oauth_redirect_uri");
return getSuiteAuthorizeURL(suiteId, preAuthCode, redirectUri, "state");
}
@@ -50,7 +50,7 @@ public class PartyApi extends QyApi {
obj.remove("id");
}
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(department_create_uri, token.getAccessToken()),
obj.toJSONString());
return response.getAsJson().getIntValue("id");
@@ -80,7 +80,7 @@ public class PartyApi extends QyApi {
obj.remove("order");
}
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(department_update_uri, token.getAccessToken()),
obj.toJSONString());
return response.getAsJsonResult();
@@ -103,7 +103,7 @@ public class PartyApi extends QyApi {
department_list_uri += String.format("&id=%d", partId);
}
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
department_list_uri, token.getAccessToken()));
return JSON.parseArray(response.getAsJson().getString("department"),
Party.class);
@@ -122,7 +122,7 @@ public class PartyApi extends QyApi {
public JsonResult deleteParty(int partId) throws WeixinException {
String department_delete_uri = getRequestUri("department_delete_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
department_delete_uri, token.getAccessToken(), partId));
return response.getAsJsonResult();
}
@@ -5,7 +5,7 @@ import java.util.ResourceBundle;
import com.alibaba.fastjson.JSON;
import com.foxinmy.weixin4j.api.BaseApi;
import com.foxinmy.weixin4j.qy.model.WeixinQyAccount;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.Weixin4jConfigUtil;
/**
* 微信企业号API
@@ -29,7 +29,7 @@ public class QyApi extends BaseApi {
WEIXIN_BUNDLE = ResourceBundle
.getBundle("com/foxinmy/weixin4j/qy/api/weixin");
DEFAULT_WEIXIN_ACCOUNT = JSON.parseObject(
ConfigUtil.getValue("account"), WeixinQyAccount.class);
Weixin4jConfigUtil.getValue("account"), WeixinQyAccount.class);
}
@Override
@@ -134,7 +134,7 @@ public class SuiteApi extends QyApi {
JSONObject appid = new JSONObject();
appid.put("appid", appids);
para.put("session_info", appid);
WeixinResponse response = weixinClient
WeixinResponse response = weixinExecutor
.post(String.format(suite_set_session_uri,
suiteTokenHolder.getAccessToken()), para.toJSONString());
return response.getAsJsonResult();
@@ -158,7 +158,7 @@ public class SuiteApi extends QyApi {
JSONObject obj = new JSONObject();
obj.put("suite_id", suiteTicketHolder.getSuiteId());
obj.put("auth_code", authCode);
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(suite_get_permanent_uri,
suiteTokenHolder.getAccessToken()), obj.toJSONString());
obj = response.getAsJson();
@@ -196,7 +196,7 @@ public class SuiteApi extends QyApi {
obj.put("suite_id", suiteTicketHolder.getSuiteId());
obj.put("auth_corpid", authCorpid);
obj.put("permanent_code", suitePerCodeHolder.getPermanentCode());
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(suite_get_authinfo_uri,
suiteTokenHolder.getAccessToken()), obj.toJSONString());
obj = response.getAsJson();
@@ -226,7 +226,7 @@ public class SuiteApi extends QyApi {
obj.put("auth_corpid", authCorpid);
obj.put("permanent_code", suitePerCodeHolder.getPermanentCode());
obj.put("agentid", agentid);
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(suite_get_agent_uri,
suiteTokenHolder.getAccessToken()), obj.toJSONString());
JSONObject jsonObj = response.getAsJson();
@@ -263,7 +263,7 @@ public class SuiteApi extends QyApi {
obj.put("auth_corpid", authCorpid);
obj.put("permanent_code", suitePerCodeHolder.getPermanentCode());
obj.put("agent", agentSet);
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(suite_set_agent_uri,
suiteTokenHolder.getAccessToken()),
JSON.toJSONString(obj, AgentApi.typeFilter));
@@ -47,7 +47,7 @@ public class TagApi extends QyApi {
if (obj.getIntValue("tagid") <= 0) {
obj.remove("tagid");
}
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(tag_create_uri, token.getAccessToken()),
obj.toJSONString());
return response.getAsJson().getIntValue("tagid");
@@ -68,7 +68,7 @@ public class TagApi extends QyApi {
public JsonResult updateTag(Tag tag) throws WeixinException {
String tag_update_uri = getRequestUri("tag_update_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(tag_update_uri, token.getAccessToken()),
JSON.toJSONString(tag));
return response.getAsJsonResult();
@@ -87,7 +87,7 @@ public class TagApi extends QyApi {
public JsonResult deleteTag(int tagId) throws WeixinException {
String tag_delete_uri = getRequestUri("tag_delete_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
tag_delete_uri, token.getAccessToken(), tagId));
return response.getAsJsonResult();
}
@@ -104,7 +104,7 @@ public class TagApi extends QyApi {
public List<Tag> listTag() throws WeixinException {
String tag_list_uri = getRequestUri("tag_list_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(tag_list_uri,
WeixinResponse response = weixinExecutor.post(String.format(tag_list_uri,
token.getAccessToken()));
return JSON.parseArray(response.getAsJson().getString("taglist"),
Tag.class);
@@ -124,7 +124,7 @@ public class TagApi extends QyApi {
public List<User> getTagUsers(int tagId) throws WeixinException {
String tag_get_user_uri = getRequestUri("tag_get_user_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
tag_get_user_uri, token.getAccessToken(), tagId));
return JSON.parseArray(response.getAsJson().getString("userlist"),
User.class);
@@ -174,7 +174,7 @@ public class TagApi extends QyApi {
obj.put("tagid", tagId);
obj.put("userlist", userIds);
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(uri, token.getAccessToken()), obj.toJSONString());
obj = response.getAsJson();
JsonResult result = JSON.toJavaObject(obj, JsonResult.class);
@@ -122,7 +122,7 @@ public class UserApi extends QyApi {
obj.put("avatar_mediaid", obj.remove("avatar"));
}
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(uri, token.getAccessToken()), obj.toJSONString());
return response.getAsJsonResult();
}
@@ -141,7 +141,7 @@ public class UserApi extends QyApi {
public User getUser(String userid) throws WeixinException {
String user_get_uri = getRequestUri("user_get_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(user_get_uri,
WeixinResponse response = weixinExecutor.post(String.format(user_get_uri,
token.getAccessToken(), userid));
JSONObject obj = response.getAsJson();
Object attrs = obj.getJSONObject("extattr").remove("attrs");
@@ -186,7 +186,7 @@ public class UserApi extends QyApi {
public OUserInfo getOUserInfoByCode(String providerToken, String authCode)
throws WeixinException {
String oauth_logininfo_uri = getRequestUri("oauth_logininfo_uri");
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(oauth_logininfo_uri, providerToken),
String.format("{\"auth_code\":\"%s\"}", authCode));
return JSON.parseObject(response.getAsString(), OUserInfo.class);
@@ -207,7 +207,7 @@ public class UserApi extends QyApi {
public JSONObject getUserIdByCode(String code) throws WeixinException {
String user_getid_uri = getRequestUri("user_getid_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
user_getid_uri, token.getAccessToken(), code));
return response.getAsJson();
}
@@ -234,7 +234,7 @@ public class UserApi extends QyApi {
String user_list_uri = findDetail ? getRequestUri("user_list_uri")
: getRequestUri("user_slist_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
user_list_uri, token.getAccessToken(), departId, fetchChild ? 1
: 0, userStatus.getVal()));
List<User> list = null;
@@ -283,7 +283,7 @@ public class UserApi extends QyApi {
public JsonResult deleteUser(String userid) throws WeixinException {
String user_delete_uri = getRequestUri("user_delete_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
user_delete_uri, token.getAccessToken(), userid));
return response.getAsJsonResult();
}
@@ -305,7 +305,7 @@ public class UserApi extends QyApi {
obj.put("useridlist", userIds);
String user_delete_uri = getRequestUri("user_batchdelete_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
user_delete_uri, token.getAccessToken(), obj.toJSONString()));
return response.getAsJsonResult();
}
@@ -323,7 +323,7 @@ public class UserApi extends QyApi {
public JsonResult authsucc(String userId) throws WeixinException {
String user_authsucc_uri = getRequestUri("user_authsucc_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(String.format(
WeixinResponse response = weixinExecutor.post(String.format(
user_authsucc_uri, token.getAccessToken(), userId));
return response.getAsJsonResult();
}
@@ -347,7 +347,7 @@ public class UserApi extends QyApi {
obj.put("invite_tips", tips);
String invite_user_uri = getRequestUri("invite_user_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(invite_user_uri, token.getAccessToken()),
obj.toJSONString());
int type = response.getAsJson().getIntValue("type");
@@ -381,7 +381,7 @@ public class UserApi extends QyApi {
obj.put("agentid", agentid);
}
String userid2openid_uri = getRequestUri("userid2openid_uri");
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(userid2openid_uri, tokenHolder.getAccessToken()),
obj.toJSONString());
obj = response.getAsJson();
@@ -401,7 +401,7 @@ public class UserApi extends QyApi {
*/
public String openid2userid(String openid) throws WeixinException {
String openid2userid_uri = getRequestUri("openid2userid_uri");
WeixinResponse response = weixinClient.post(
WeixinResponse response = weixinExecutor.post(
String.format(openid2userid_uri, tokenHolder.getAccessToken()),
String.format("{\"openid\": \"%s\"}", openid));
return response.getAsJson().getString("userid");
@@ -48,9 +48,9 @@ tag_delete_user_uri={api_base_url}/tag/deltagusers?access_token=%s
# \u9080\u8bf7\u6210\u5458\u5173\u6ce8
invite_user_uri={api_base_url}/invite/send?access_token=%s
# \u4e0a\u4f20\u5a92\u4f53\u6587\u4ef6
file_upload_uri={api_base_url}/media/upload?access_token=%s&type=%s
media_upload_uri={api_base_url}/media/upload?access_token=%s&type=%s
# \u4e0b\u8f7d\u5a92\u4f53\u6587\u4ef6
file_download_uri={api_base_url}/media/get?access_token=%s&media_id=%s
media_download_uri={api_base_url}/media/get?access_token=%s&media_id=%s
# \u81ea\u5b9a\u4e49\u83dc\u5355
menu_create_uri={api_base_url}/menu/create?access_token=%s&agentid=%d
# \u5220\u9664\u83dc\u5355
@@ -2,7 +2,7 @@ package com.foxinmy.weixin4j.qy.suite;
import com.alibaba.fastjson.JSONObject;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinHttpClient;
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
@@ -22,7 +22,7 @@ import com.foxinmy.weixin4j.token.TokenHolder;
*/
public class WeixinSuitePreCodeCreator implements TokenCreator {
private final WeixinHttpClient httpClient;
private final WeixinRequestExecutor httpClient;
private final TokenHolder suiteTokenHolder;
private final String suiteId;
@@ -37,7 +37,7 @@ public class WeixinSuitePreCodeCreator implements TokenCreator {
String suiteId) {
this.suiteTokenHolder = suiteTokenHolder;
this.suiteId = suiteId;
this.httpClient = new WeixinHttpClient();
this.httpClient = new WeixinRequestExecutor();
}
@Override
@@ -2,7 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinHttpClient;
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
@@ -21,7 +21,7 @@ import com.foxinmy.weixin4j.token.TokenCreator;
*/
public class WeixinSuiteTokenCreator implements TokenCreator {
private final WeixinHttpClient httpClient;
private final WeixinRequestExecutor httpClient;
private final SuiteTicketHolder ticketHolder;
/**
@@ -31,7 +31,7 @@ public class WeixinSuiteTokenCreator implements TokenCreator {
*/
public WeixinSuiteTokenCreator(SuiteTicketHolder ticketHolder) {
this.ticketHolder = ticketHolder;
this.httpClient = new WeixinHttpClient();
this.httpClient = new WeixinRequestExecutor();
}
@Override
@@ -2,7 +2,7 @@ package com.foxinmy.weixin4j.qy.suite;
import com.alibaba.fastjson.JSONObject;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinHttpClient;
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
@@ -22,7 +22,7 @@ import com.foxinmy.weixin4j.token.TokenHolder;
*/
public class WeixinTokenSuiteCreator implements TokenCreator {
private final WeixinHttpClient httpClient;
private final WeixinRequestExecutor httpClient;
private final String authCorpid;
private final SuitePerCodeHolder perCodeHolder;
private final TokenHolder suiteTokenHolder;
@@ -41,7 +41,7 @@ public class WeixinTokenSuiteCreator implements TokenCreator {
this.authCorpid = authCorpid;
this.perCodeHolder = perCodeHolder;
this.suiteTokenHolder = suiteTokenHolder;
this.httpClient = new WeixinHttpClient();
this.httpClient = new WeixinRequestExecutor();
}
@Override
@@ -2,7 +2,7 @@ package com.foxinmy.weixin4j.qy.token;
import com.alibaba.fastjson.JSONObject;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinHttpClient;
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
@@ -24,7 +24,7 @@ public class WeixinJSTicketCreator implements TokenCreator {
private final String corpid;
private final TokenHolder weixinTokenHolder;
private final WeixinHttpClient httpClient;
private final WeixinRequestExecutor httpClient;
/**
*
@@ -36,7 +36,7 @@ public class WeixinJSTicketCreator implements TokenCreator {
public WeixinJSTicketCreator(String corpid, TokenHolder weixinTokenHolder) {
this.corpid = corpid;
this.weixinTokenHolder = weixinTokenHolder;
this.httpClient = new WeixinHttpClient();
this.httpClient = new WeixinRequestExecutor();
}
@Override
@@ -2,7 +2,7 @@ package com.foxinmy.weixin4j.qy.token;
import com.alibaba.fastjson.JSONObject;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinHttpClient;
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
@@ -21,7 +21,7 @@ import com.foxinmy.weixin4j.token.TokenCreator;
*/
public class WeixinProviderTokenCreator implements TokenCreator {
private final WeixinHttpClient httpClient;
private final WeixinRequestExecutor httpClient;
private final String corpid;
private final String providersecret;
@@ -35,7 +35,7 @@ public class WeixinProviderTokenCreator implements TokenCreator {
public WeixinProviderTokenCreator(String corpid, String providersecret) {
this.corpid = corpid;
this.providersecret = providersecret;
this.httpClient = new WeixinHttpClient();
this.httpClient = new WeixinRequestExecutor();
}
@Override
@@ -2,7 +2,7 @@ package com.foxinmy.weixin4j.qy.token;
import com.alibaba.fastjson.TypeReference;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinHttpClient;
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.qy.type.URLConsts;
@@ -21,7 +21,7 @@ import com.foxinmy.weixin4j.token.TokenCreator;
*/
public class WeixinTokenCreator implements TokenCreator {
private final WeixinHttpClient httpClient;
private final WeixinRequestExecutor weixinExecutor;
private final String corpid;
private final String corpsecret;
@@ -35,7 +35,7 @@ public class WeixinTokenCreator implements TokenCreator {
public WeixinTokenCreator(String corpid, String corpsecret) {
this.corpid = corpid;
this.corpsecret = corpsecret;
this.httpClient = new WeixinHttpClient();
this.weixinExecutor = new WeixinRequestExecutor();
}
@Override
@@ -47,7 +47,7 @@ public class WeixinTokenCreator implements TokenCreator {
public Token createToken() throws WeixinException {
String tokenUrl = String.format(URLConsts.ASSESS_TOKEN_URL, corpid,
corpsecret);
WeixinResponse response = httpClient.get(tokenUrl);
WeixinResponse response = weixinExecutor.get(tokenUrl);
Token token = response.getAsObject(new TypeReference<Token>() {
});
token.setTime(System.currentTimeMillis());
@@ -33,11 +33,10 @@ public class MediaTest extends TokenTest {
@Test
public void upload() throws IOException, WeixinException {
File file = new File("/Users/jy/Downloads/uu-logo.png");
File file = new File("/Users/jy/Downloads/weixin4j.png");
MediaUploadResult mediaResult = mediaApi.uploadMedia(0, new FileInputStream(
file), file.getName());
// 1-1gpykXsR8bhNvO13-ZvskptCBxQF1UE535jFdCF63N2inGRAqEb-psF6eppjIIl
// 1CF6sBgWWFGY9s4JCEet5ASszsTuyHpeN1f2LWXADveqBlKoxSgb3cO401NEM7dNY
// 1gJ0vRLQp_o7L9hsVm6sviuGWc0qaPOd-KjkUZ6KQ7IrFVui8b2ZZd9F5szLCUkkD8gxk65lwW2SV72XO1RGZTQ
Assert.assertNotNull(mediaResult.getMediaId());
System.out.println(mediaResult);
}
@@ -9,7 +9,7 @@ import com.foxinmy.weixin4j.model.WeixinAccount;
import com.foxinmy.weixin4j.qy.token.WeixinTokenCreator;
import com.foxinmy.weixin4j.token.FileTokenStorager;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.Weixin4jConfigUtil;
/**
* token测试
@@ -25,10 +25,10 @@ public class TokenTest {
@Before
public void setUp() {
WeixinAccount weixinAccount = ConfigUtil.getWeixinAccount();
WeixinAccount weixinAccount = Weixin4jConfigUtil.getWeixinAccount();
tokenHolder = new TokenHolder(new WeixinTokenCreator(
weixinAccount.getId(), weixinAccount.getSecret()),
new FileTokenStorager(ConfigUtil.getValue(
new FileTokenStorager(Weixin4jConfigUtil.getValue(
"token_path", "/tmp/weixin4j/token")));
}