Created
January 11, 2015 14:14
-
-
Save suanmiao/965cfd0f6c7057c1ddc4 to your computer and use it in GitHub Desktop.
WeClient API Code Reference
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*** | |
* 1.这是半年前的代码,因此有些Url有冗余,实现部分也有很冗余,主要参考的是url和实现部分的参数; | |
* 2.注意base url和path的概念 | |
* 3. | |
***/ | |
//URL | |
public static final String URL_LOGIN = "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN"; | |
public static final String URL_GET_MESSAGE_LIST = "https://mp.weixin.qq.com/cgi-bin/message"; | |
public static final String URL_GET_NEW_MESSAGE_COUNT = "https://mp.weixin.qq.com/cgi-bin/getnewmsgnum"; | |
public static final String URL_MESSAGE_LOAD_PAGE = "https://mp.weixin.qq.com/cgi-bin/message"; | |
public static final String URL_MESSAGE_REPLY = "https://mp.weixin.qq.com/cgi-bin/singlesend"; | |
public static final String URL_MESSAGE_STAR = "https://mp.weixin.qq.com/cgi-bin/setstarmessage"; | |
public static final String URL_MESSAGE_MASS = "https://mp.weixin.qq.com/cgi-bin/masssend"; | |
public static final String URL_GET_MESSAGE_PROFILE_IMG = "https://mp.weixin.qq.com/misc/getheadimg"; | |
public static final String URL_GET_USER_PROFILE = "https://mp.weixin.qq.com/cgi-bin/home"; | |
public static final String URL_GET_MASS_DATA = "https://mp.weixin.qq.com/cgi-bin/masssendpage"; | |
public static final String URL_GET_MESSAGE_IMG = "https://mp.weixin.qq.com/cgi-bin/getimgdata"; | |
public static final String URL_GET_VOICE_MESSAGE = "https://mp.weixin.qq.com/cgi-bin/getvoicedata"; | |
public static final String URL_GET_VOICE_MESSAGE_REFERER = "https://mp.weixin.qq.com/mpres/zh_CN/htmledition/plprecorder/soundmanager2.swf"; | |
public static final String URL_GET_APP_MSG_LIST = "https://mp.weixin.qq.com/cgi-bin/appmsg"; | |
public static final String URL_GET_FANS_LIST = "https://mp.weixin.qq.com/cgi-bin/contactmanage"; | |
public static final String URL_MODIFY_CONTACTS = "https://mp.weixin.qq.com/cgi-bin/modifycontacts"; | |
public static final String URL_GET_CONTACT_INFO = "https://mp.weixin.qq.com/cgi-bin/getcontactinfo"; | |
public static final String URL_GET_CHAT_LIST = "https://mp.weixin.qq.com/cgi-bin/singlesendpage"; | |
public static final String URL_GET_REFRESH_CHAT_LIST = "https://mp.weixin.qq.com/cgi-bin/singlesendpage"; | |
public static final String URL_CHAT_SINGLE_SEND = "https://mp.weixin.qq.com/cgi-bin/singlesend"; | |
public static final String URL_GET_CHAT_NEW_ITEM = "https://mp.weixin.qq.com/cgi-bin/singlesendpage"; | |
public static final String URL_GET_MATERIAL_LIST = "https://mp.weixin.qq.com/cgi-bin/filepage"; | |
public static final String URL_GET_UPLOAD_INFO = "https://mp.weixin.qq.com/cgi-bin/filepage"; | |
public static final String URL_UPLOAD_FILE = "https://mp.weixin.qq.com/cgi-bin/filetransfer"; | |
public static final String URL_VERIFY = "https://mp.weixin.qq.com/cgi-bin/securesmsverify"; | |
public static final String URL_VERIFY_PAGE = "https://mp.weixin.qq.com/cgi-bin/readtemplate"; | |
public static final String URL_GET_IMGCODE = "https://mp.weixin.qq.com/cgi-bin/verifycode"; | |
//Methods: | |
public void loginCurrent(String imgCode, String sig, | |
OnRequestSuccessListener<ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestFinishListener) { | |
UserBean nowBean = getCurrentUser(); | |
if (nowBean != null) { | |
login(nowBean.getUserName(), nowBean.getPwd(), sig, imgCode, | |
onRequestSuccessListener, onRequestFinishListener); | |
} else { | |
onRequestFinishListener | |
.onError(RequestLoader.RESULT_MESSAGE_ERROR_OTHER); | |
} | |
} | |
public void login(String username, String pwd, String sig, String imgcode, | |
OnRequestSuccessListener<ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestFinishListener) { | |
String url = APIConstants.URL_LOGIN; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
headerList | |
.add(new BasicNameValuePair("Referer", | |
"https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN")); | |
headerList.add(new BasicNameValuePair("Content-Type", | |
"text/html; charset=utf-8")); | |
if (sig != null && sig.length() > 0) { | |
headerList.add(new BasicNameValuePair("Cookie", "sig=" + sig)); | |
} | |
paramList.add(new BasicNameValuePair("username", username)); | |
paramList.add(new BasicNameValuePair("pwd", pwd)); | |
paramList.add(new BasicNameValuePair("imgcode", imgcode)); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
Header[] headers = (Header[]) resultHolder | |
.getExtra("headers"); | |
Log.e("login get header", ""+headers.toString()); | |
String source = resultHolder.getResultString(); | |
Log.e("login get result", ""+source); | |
LoginResultHolder loginResultHolder = ResultParser | |
.parseLogin(source, headers); | |
int parseCode = loginResultHolder.getParseCode(); | |
resultHolder.setParseCode(parseCode); | |
resultHolder.putResult(loginResultHolder); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestFinishListener); | |
} | |
public void mass(final MaterialBean materialBean, | |
OnRequestSuccessListener<ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestFinishListener) { | |
String url = APIConstants.URL_MESSAGE_MASS; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
headerList.add(new BasicNameValuePair("Referer", | |
"https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN")); | |
addCommonHeader(headerList); | |
addCommonParam(paramList, true); | |
int type = materialBean.getType(); | |
paramList.add(new BasicNameValuePair("type", type + "")); | |
Log.e("type", "" + type); | |
switch (type) { | |
case MaterialBean.MATERIAL_TYPE_TEXT: | |
paramList.add(new BasicNameValuePair("content", materialBean | |
.getContent())); | |
break; | |
case MaterialBean.MATERIAL_TYPE_IMG: | |
paramList.add(new BasicNameValuePair("fileid", materialBean | |
.getFile_id())); | |
break; | |
case MaterialBean.MATERIAL_TYPE_VOICE: | |
paramList.add(new BasicNameValuePair("fileid", materialBean | |
.getFile_id())); | |
break; | |
case MaterialBean.MATERIAL_TYPE_APP: | |
if (materialBean.getAppItemBean() != null) { | |
String msgId = materialBean.getAppItemBean().getApp_id(); | |
Log.e("msg id", "" + msgId); | |
paramList.add(new BasicNameValuePair("appmsgid", msgId)); | |
} | |
break; | |
} | |
paramList.add(new BasicNameValuePair("sex", "0")); | |
paramList.add(new BasicNameValuePair("groupid", "-1")); | |
paramList.add(new BasicNameValuePair("synctxweibo", "0")); | |
paramList.add(new BasicNameValuePair("synctxnews", "0")); | |
paramList.add(new BasicNameValuePair("country", "")); | |
paramList.add(new BasicNameValuePair("province", "")); | |
paramList.add(new BasicNameValuePair("city", "")); | |
paramList.add(new BasicNameValuePair("imgcode", "")); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("t", "ajax-response")); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
try { | |
JSONObject resultJsonObject = new JSONObject(source); | |
resultHolder.putResult(resultJsonObject); | |
resultHolder | |
.setParseCode(ResultParser.PARSE_SUCCESS); | |
} catch (Exception e) { | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestFinishListener); | |
// WeChatLoader.wechatMass(new WechatMassCallBack() { | |
// | |
// @Override | |
// public void onBack(int resultCode, String strResult) { | |
// // TODO Auto-generated method stub | |
// Log.e(" mass result", resultCode + "|" + strResult); | |
// switch (resultCode) { | |
// | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_OK: | |
// | |
// try { | |
// mDataManager.doLoadingEnd(); | |
// | |
// JSONObject resultJsonObject = new JSONObject(strResult); | |
// | |
// if (resultJsonObject.get("ret") != null) { | |
// | |
// if (Integer.parseInt(resultJsonObject.get("ret") | |
// + "") == WeChatLoader.WECHAT_MASS_OK) { | |
// onActionFinishListener.onFinish(ACTION_SUCCESS, | |
// null); | |
// | |
// } else if (Integer.parseInt(resultJsonObject | |
// .get("ret") + "") == WeChatLoader.WECHAT_MASS_ERROR_ONLY_ONE) { | |
// | |
// Log.e("mass only ", ""); | |
// | |
// mDataManager.doPopEnsureDialog(false, true, | |
// "哎呀", "每天只能群发一条哦~", | |
// new DialogSureClickListener() { | |
// | |
// @Override | |
// public void onClick(View v) { | |
// // TODO Auto-generated method | |
// // stub | |
// mDataManager | |
// .doDismissAllDialog(); | |
// | |
// } | |
// }); | |
// } | |
// | |
// } else { | |
// mDataManager.doLoadingEnd(); | |
// } | |
// } catch (Exception exception) { | |
// | |
// Log.e("mass result parse exception", "" + exception); | |
// onActionFinishListener.onFinish(ACTION_OTHER, null); | |
// } | |
// break; | |
// | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_ERROR_TIMEOUT: | |
// | |
// onActionFinishListener.onFinish(ACTION_TIME_OUT, null); | |
// break; | |
// | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_ERROR_OTHER: | |
// | |
// onActionFinishListener.onFinish(ACTION_OTHER, null); | |
// break; | |
// | |
// } | |
// | |
// } | |
// }, mDataManager.getCurrentUser(), materialBean); | |
} | |
public void getMassData( | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_MASS_DATA; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
UserBean currentBean = mDataManager.getCurrentUser(); | |
headerList.add(new BasicNameValuePair("Referer", | |
APIConstants.URL_GET_USER_PROFILE + currentBean.getToken())); | |
/* | |
* 1 = | |
* "https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=" ; | |
* 2 = "&lang=zh_CN"; | |
*/ | |
addCommonParam(paramList, false); | |
paramList.add(new BasicNameValuePair("t", "mass/send")); | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
int parseCode = ResultParser.parseMassData(source, | |
getCurrentUser()); | |
resultHolder.setParseCode(parseCode); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getMessageList( | |
final int offset, | |
final String keyword, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_MESSAGE_LIST; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
/* | |
* 1 = | |
* "https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=" ; | |
* 2 = "&lang=zh_CN"; | |
*/ | |
addCommonParam(paramList, false); | |
paramList.add(new BasicNameValuePair("t", "message/list")); | |
paramList.add(new BasicNameValuePair("count", "20")); | |
if (keyword != null && keyword.length() > 0) { | |
paramList.add(new BasicNameValuePair("action", "search")); | |
paramList.add(new BasicNameValuePair("keyword", keyword)); | |
} else { | |
if (offset != 0) { | |
paramList.add(new BasicNameValuePair("frommsgid", | |
getCurrentMessageHolder().getLatestMsgId())); | |
paramList.add(new BasicNameValuePair("offset", offset + "")); | |
} | |
boolean hideKeyWordMessage = mConfigManager.getHideKeyWordMessage(); | |
int hideKeyWord = hideKeyWordMessage ? 1 : 0; | |
switch (getCurrentMessageHolder().getNowMessageMode()) { | |
case APIConstants.MESSAGE_MODE_ALL: | |
paramList.add(new BasicNameValuePair("filterivrmsg", | |
hideKeyWord + "")); | |
paramList.add(new BasicNameValuePair("day", "7")); | |
break; | |
case APIConstants.MESSAGE_MODE_TODAY: | |
paramList.add(new BasicNameValuePair("filterivrmsg", | |
hideKeyWord + "")); | |
paramList.add(new BasicNameValuePair("day", "0")); | |
break; | |
case APIConstants.MESSAGE_MODE_YESTERDAY: | |
paramList.add(new BasicNameValuePair("filterivrmsg", | |
hideKeyWord + "")); | |
paramList.add(new BasicNameValuePair("day", "1")); | |
break; | |
case APIConstants.MESSAGE_MODE_DAY_BEFORE: | |
paramList.add(new BasicNameValuePair("filterivrmsg", | |
hideKeyWord + "")); | |
paramList.add(new BasicNameValuePair("day", "2")); | |
break; | |
case APIConstants.MESSAGE_MODE_OLDER: | |
paramList.add(new BasicNameValuePair("day", "3")); | |
break; | |
case APIConstants.MESSAGE_MODE_STAR: | |
paramList.add(new BasicNameValuePair("filterivrmsg", | |
hideKeyWord + "")); | |
paramList.add(new BasicNameValuePair("action", "star")); | |
break; | |
} | |
} | |
// Log.e("get message ", "url |"+url); | |
// Log.e("get message ", "param |"+paramList.toString()); | |
// Log.e("get message ", "header |"+headerList.toString()); | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
String referer = resultHolder.getRefererString(); | |
boolean addDataItem = true; | |
if (keyword != null && keyword.length() > 0) { | |
addDataItem = false; | |
} | |
MessageResultHolder messageResultHolder = ResultParser | |
.parseMessage(source, getCurrentUser(), | |
getCurrentMessageHolder() | |
.getNowMessageMode(), offset, | |
addDataItem, referer); | |
resultHolder.putExtra("messageResultHolder", | |
messageResultHolder); | |
resultHolder.setParseCode(messageResultHolder | |
.getParseCode()); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getUserProfile( | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_USER_PROFILE; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
/* | |
* PROFILE = | |
* "https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token=" | |
* ; | |
*/ | |
paramList.add(new BasicNameValuePair("t", "home/index")); | |
addCommonParam(paramList, false); | |
// Log.e("get user profile", "url :" + url); | |
// Log.e("get user profile", "param :" + paramList.toString()); | |
// Log.e("get user profile", "url :" + headerList.toString()); | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
int parseCode = ResultParser.parseUserProfile(source, | |
getCurrentUser()); | |
resultHolder.setParseCode(parseCode); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getFansList( | |
final int page, | |
final String groupId, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_FANS_LIST; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
UserBean currentBean = getCurrentUser(); | |
String referer = ""; | |
if (page == 0) { | |
if (groupId.equals("-1")) { | |
referer = "https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token=" | |
+ currentBean.getToken(); | |
} else { | |
referer = "https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&pagesize=10&pageidx=0&type=0&token=" | |
+ currentBean.getToken() + "&lang=zh_CN"; | |
} | |
} else { | |
referer = "https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&pagesize=10&pageidx=" | |
+ (page - 1) | |
+ "&type=0&groupid=" | |
+ groupId | |
+ "&token=" | |
+ currentBean.getToken() + "&lang=zh_CN"; | |
} | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonParam(paramList, false); | |
/* | |
* 1 = | |
* "https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&pagesize=10&pageidx=" | |
* ; | |
*/ | |
/* | |
* if want all the user,use 2,without groupId if want group user ,use | |
* 3,with groupId | |
*/ | |
/* | |
* | |
* 2 = "&type=0"; 3 = "&type=0&groupid="; 4 = "&token="; 5 = | |
* "&lang=zh_CN"; | |
*/ | |
paramList.add(new BasicNameValuePair("t", "user/index")); | |
paramList.add(new BasicNameValuePair("pagesize", "10")); | |
paramList.add(new BasicNameValuePair("pageidx", page + "")); | |
paramList.add(new BasicNameValuePair("type", "0")); | |
if (groupId.equals("-1")) { | |
// all user | |
} else { | |
paramList.add(new BasicNameValuePair("groupid", groupId)); | |
} | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
String referer = resultHolder.getRefererString(); | |
FansResultHolder fansResultHolder = ResultParser | |
.parseFansList(source, referer, | |
getCurrentFansHolder() | |
.getCurrentGroupId(), | |
getCurrentUser(), page); | |
resultHolder.putExtra("fansResultHolder", | |
fansResultHolder); | |
resultHolder.setParseCode(fansResultHolder | |
.getParseCode()); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getFansProfile( | |
final String fakeId, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_CONTACT_INFO; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/message?t=message/list&count=20&day=7&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonParam(paramList, true); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("fakeid", fakeId)); | |
paramList.add(new BasicNameValuePair("t", "ajax-getcontactinfo")); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
FansProfileHolder fansProfileHolder = ResultParser | |
.parseFansProfile(source, getCurrentUser()); | |
resultHolder.putExtra("fansProfile", fansProfileHolder); | |
resultHolder.setParseCode(fansProfileHolder | |
.getParseCode()); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getChatList( | |
final String toFakeId, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_CHAT_LIST; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/message?t=message/list&count=20&day=7&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonParam(paramList, true); | |
paramList.add(new BasicNameValuePair("tofakeid", toFakeId)); | |
paramList.add(new BasicNameValuePair("t", "message/send")); | |
paramList.add(new BasicNameValuePair("action", "index")); | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
String referer = resultHolder.getRefererString(); | |
ChatResultHolder chatResultHolder = ResultParser | |
.parseChatList(source, toFakeId); | |
resultHolder.putExtra("chatResultHolder", | |
chatResultHolder); | |
resultHolder.setParseCode(chatResultHolder | |
.getParseCode()); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void singleChat( | |
final MessageBean messageBean, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_CHAT_SINGLE_SEND; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/singlesendpage?tofakeid=" | |
+ messageBean.getToFakeId() | |
+ "&t=message/send&action=index&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonHeader(headerList); | |
addCommonParam(paramList, true); | |
paramList | |
.add(new BasicNameValuePair("type", messageBean.getType() + "")); | |
paramList.add(new BasicNameValuePair("content", messageBean | |
.getContent())); | |
paramList.add(new BasicNameValuePair("tofakeid", "" | |
+ messageBean.getToFakeId())); | |
paramList.add(new BasicNameValuePair("imgcode", "")); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("t", "ajax-response")); | |
// Log.e("single chat", "url |"+url); | |
// Log.e("single chat", "param |"+paramList.toString()); | |
// Log.e("single chat", "header |"+headerList.toString()); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void refreshChatList( | |
final String toFakeId, | |
String lastMsgFromFakeId, | |
String lastMsgId, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_REFRESH_CHAT_LIST; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/singlesendpage?tofakeid=" | |
+ toFakeId | |
+ "&t=message/send&action=index&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonParam(paramList, true); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("tofakeid", toFakeId)); | |
paramList.add(new BasicNameValuePair("action", "sync")); | |
paramList.add(new BasicNameValuePair("lastmsgfromfakeid", "" | |
+ lastMsgFromFakeId)); | |
paramList.add(new BasicNameValuePair("lastmsgid", lastMsgId)); | |
String time = System.currentTimeMillis() + ""; | |
if (time.length() > 10) { | |
time = time.substring(0, 10); | |
} | |
paramList.add(new BasicNameValuePair("createtime", time)); | |
Log.e("last msg id", "" + lastMsgId); | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
String referer = resultHolder.getRefererString(); | |
// Log.e("get refresh list", "" + source); | |
ChatResultHolder chatResultHolder = ResultParser | |
.parseRefreshChatList(source, toFakeId); | |
resultHolder.putResult(chatResultHolder); | |
resultHolder.setParseCode(chatResultHolder | |
.getParseCode()); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getMessageHeadImg( | |
final String fakeId, | |
final String referer, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_MESSAGE_PROFILE_IMG; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
/* | |
* 1 = "https://mp.weixin.qq.com/cgi-bin/getheadimg?token="; 2 = | |
* "&fakeid="; | |
*/ | |
addCommonParam(paramList, false); | |
paramList.add(new BasicNameValuePair("fakeid", fakeId)); | |
String key = "userImg" + fakeId; | |
Bitmap localBitmap = mImageCacheManager.getBitmap(key); | |
if (localBitmap != null) { | |
ResultHolder<Bitmap> resultHolder = new ResultHolder<Bitmap>(); | |
resultHolder.putBitmap(localBitmap); | |
onRequestSuccessListener.onFinish(resultHolder); | |
return; | |
} | |
RequestLoader.methodGetImg(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
if (resultHolder.getBitmap() != null) { | |
String key = "userImg" + fakeId; | |
mImageCacheManager.putBitmap(key, | |
resultHolder.getBitmap(), true); | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getMessageImg( | |
final MessageBean messageBean, | |
final String imgType, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_MESSAGE_IMG; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
headerList.add(new BasicNameValuePair("Referer", messageBean | |
.getReferer())); | |
/* | |
* 1 = "https://mp.weixin.qq.com/cgi-bin/getimgdata?token="; 2 = | |
* "&msgid="; 3 = "&mode="; 4 = "&source=&fileId=0"; | |
*/ | |
addCommonParam(paramList, false); | |
paramList.add(new BasicNameValuePair("msgid", messageBean.getId())); | |
paramList.add(new BasicNameValuePair("mode", imgType)); | |
paramList | |
.add(new BasicNameValuePair("source", messageBean.getSource())); | |
paramList | |
.add(new BasicNameValuePair("fileId", messageBean.getFileId())); | |
String key = "messageImg" + messageBean.getId(); | |
Bitmap localBitmap = mImageCacheManager.getBitmap(key); | |
if (localBitmap != null) { | |
ResultHolder<Bitmap> resultHolder = new ResultHolder<Bitmap>(); | |
resultHolder.putBitmap(localBitmap); | |
onRequestSuccessListener.onFinish(resultHolder); | |
return; | |
} | |
RequestLoader.methodGetImg(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
if (resultHolder.getBitmap() != null) { | |
String key = "messageImg" + messageBean.getId(); | |
mImageCacheManager.putBitmap(key, | |
resultHolder.getBitmap(), true); | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getMessageVoice( | |
final MessageBean messageBean, | |
final int length, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_VOICE_MESSAGE; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
headerList.add(new BasicNameValuePair("Referer", | |
APIConstants.URL_GET_VOICE_MESSAGE_REFERER)); | |
addCommonParam(paramList, false); | |
/* | |
* 1 = "https://mp.weixin.qq.com/cgi-bin/getvoicedata?msgid="; 2 = | |
* "&fileid=&token="; 3 = "&lang=zh_CN"; | |
*/ | |
paramList.add(new BasicNameValuePair("msgid", messageBean.getId())); | |
paramList.add(new BasicNameValuePair("fileid", "")); | |
paramList | |
.add(new BasicNameValuePair("source", messageBean.getSource())); | |
String key = "messageVoice" + messageBean.getId(); | |
byte[] localData = mImageCacheManager.getBytes(key); | |
if (localData != null) { | |
ResultHolder<byte[]> resultHolder = new ResultHolder<byte[]>(); | |
resultHolder.putBytes(localData); | |
onRequestSuccessListener.onFinish(resultHolder); | |
return; | |
} | |
RequestLoader.methodGetBytes(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
if (resultHolder.getBytes() != null) { | |
String key = "messageVoice" + messageBean.getId(); | |
mImageCacheManager.putBytes(key, | |
resultHolder.getBytes(), true); | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void reply( | |
MessageBean messageBean, | |
String replyContent, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_MESSAGE_REPLY; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
// asChrome(headerList); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/message?t=message/list&count=20&day=7&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonParam(paramList, true); | |
paramList.add(new BasicNameValuePair("mask", "false")); | |
paramList.add(new BasicNameValuePair("tofakeid", messageBean | |
.getFakeId())); | |
paramList.add(new BasicNameValuePair("imgcode", "")); | |
paramList.add(new BasicNameValuePair("type", "1")); | |
paramList.add(new BasicNameValuePair("content", replyContent)); | |
paramList.add(new BasicNameValuePair("quickreplyid", messageBean | |
.getId())); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("t", "ajax-response")); | |
// Log.e("reply", "url |" + url); | |
// Log.e("reply", "param |" + paramList.toString()); | |
// Log.e("reply", "header |" + headerList.toString()); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
// FansProfileHolder fansProfileHolder = ResultParser | |
// .parseFansProfile(source, getCurrentUser()); | |
// resultHolder.putExtra("fansProfile", | |
// fansProfileHolder); | |
// resultHolder.setParseCode(fansProfileHolder | |
// .getParseCode()); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void star( | |
MessageBean messageBean, | |
boolean star, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_MESSAGE_STAR; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/message?t=message/list&count=20&day=7&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
paramList.add(new BasicNameValuePair("msgid", messageBean.getId())); | |
addCommonParam(paramList, true); | |
if (star) { | |
paramList.add(new BasicNameValuePair("value", "1")); | |
} else { | |
paramList.add(new BasicNameValuePair("value", "0")); | |
} | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("t", "ajax-setstarmessage")); | |
// Log.e("star ", "url |" + star); | |
// Log.e("star ", "params |" + paramList.toString()); | |
// Log.e("star ", "header |" + headerList.toString()); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
// FansProfileHolder fansProfileHolder = ResultParser | |
// .parseFansProfile(source, getCurrentUser()); | |
// resultHolder.putExtra("fansProfile", | |
// fansProfileHolder); | |
// resultHolder.setParseCode(fansProfileHolder | |
// .getParseCode()); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void modifyContacts( | |
final int action, | |
final String toFakeId, | |
final String groupId, | |
final String remark, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_MODIFY_CONTACTS; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&pagesize=10&pageidx=0&type=0&groupid=0&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonParam(paramList, true); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
switch (action) { | |
case APIConstants.MODIFY_CONTACTS_ACTION_MODIFY: | |
paramList.add(new BasicNameValuePair("action", "modifycontacts")); | |
paramList.add(new BasicNameValuePair("t", "ajax-putinto-group")); | |
paramList.add(new BasicNameValuePair("contacttype", groupId)); | |
paramList.add(new BasicNameValuePair("tofakeidlist", toFakeId)); | |
break; | |
case APIConstants.MODIFY_CONTACTS_ACTION_REMARK: | |
paramList.add(new BasicNameValuePair("action", "setremark")); | |
paramList.add(new BasicNameValuePair("t", "ajax-response")); | |
paramList.add(new BasicNameValuePair("remark", remark)); | |
paramList.add(new BasicNameValuePair("tofakeuin", toFakeId)); | |
break; | |
} | |
// Log.e("modify contact", "url |"+url); | |
// Log.e("modify contact", "param |"+paramList.toString()); | |
// Log.e("modify contact", "header |"+headerList.toString()); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
resultHolder.setParseCode(ResultParser.PARSE_FAILED); | |
try { | |
Log.e("edit result", source); | |
JSONObject resultJsonObject = new JSONObject(source); | |
if (resultJsonObject.get("ret") != null) { | |
if (Integer.parseInt(resultJsonObject | |
.get("ret") + "") == StateConstants.WECHAT_MODIFY_CONTACT_OK) { | |
resultHolder | |
.setParseCode(ResultParser.PARSE_SUCCESS); | |
} | |
} | |
} catch (Exception exception) { | |
Log.e("modify result parse error", "" + exception); | |
} | |
// try { | |
// | |
// JSONObject resultJsonObject = new JSONObject(source); | |
// | |
// } catch (Exception exception) { | |
// Log.e("star result parse error", "" + exception); | |
// | |
// } | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getImgCode( | |
final String username, | |
final String r, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_IMGCODE; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
/* | |
* 1 = "https://mp.weixin.qq.com/cgi-bin/getheadimg?token="; 2 = | |
* "&fakeid="; | |
*/ | |
paramList.add(new BasicNameValuePair("username", username)); | |
paramList.add(new BasicNameValuePair("r", r)); | |
RequestLoader.methodGetImg(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
if (resultHolder.getBitmap() != null) { | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getUserHeadImg( | |
final String fakeId, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_MESSAGE_PROFILE_IMG; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
headerList.add(new BasicNameValuePair("Referer", | |
"https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token=" | |
+ getCurrentUser().getToken())); | |
/* | |
* 1 = "https://mp.weixin.qq.com/cgi-bin/getheadimg?token="; 2 = | |
* "&fakeid="; | |
*/ | |
addCommonParam(paramList, false); | |
paramList.add(new BasicNameValuePair("fakeid", fakeId)); | |
String key = "userImg" + fakeId; | |
Bitmap localBitmap = mImageCacheManager.getBitmap(key); | |
if (localBitmap != null) { | |
ResultHolder<Bitmap> resultHolder = new ResultHolder<Bitmap>(); | |
resultHolder.putBitmap(localBitmap); | |
onRequestSuccessListener.onFinish(resultHolder); | |
return; | |
} | |
RequestLoader.methodGetImg(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
if (resultHolder.getBitmap() != null) { | |
String key = "userImg" + fakeId; | |
mImageCacheManager.putBitmap(key, | |
resultHolder.getBitmap(), true); | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
/* | |
* | |
*/ | |
public void getMaterialVoice( | |
final MaterialBean materialBean, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_VOICE_MESSAGE; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonParam(paramList, false); | |
paramList.add(new BasicNameValuePair("msgid", "")); | |
paramList.add(new BasicNameValuePair("fileid", materialBean | |
.getFile_id())); | |
paramList.add(new BasicNameValuePair("source", "file")); | |
String key = "materialVoice" + materialBean.getFile_id(); | |
byte[] localData = mImageCacheManager.getBytes(key); | |
if (localData != null) { | |
ResultHolder<byte[]> resultHolder = new ResultHolder<byte[]>(); | |
resultHolder.putBytes(localData); | |
onRequestSuccessListener.onFinish(resultHolder); | |
return; | |
} | |
RequestLoader.methodGetBytes(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
if (resultHolder.getBytes() != null) { | |
String key = "materialVoice" | |
+ materialBean.getFile_id(); | |
mImageCacheManager.putBytes(key, | |
resultHolder.getBytes(), true); | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getMaterialImg( | |
final MaterialBean materialBean, | |
final String imgType, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_MESSAGE_IMG; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
addCommonHeader(headerList); | |
String referer = "Referer:https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
/* | |
* 1 = "https://mp.weixin.qq.com/cgi-bin/getimgdata?token="; 2 = | |
* "&msgid="; 3 = "&mode="; 4 = "&source=&fileId=0"; | |
*/ | |
paramList.add(new BasicNameValuePair("token", getCurrentUser() | |
.getToken())); | |
paramList.add(new BasicNameValuePair("msgid", "{msgid}")); | |
paramList.add(new BasicNameValuePair("mode", imgType)); | |
paramList.add(new BasicNameValuePair("source", "file")); | |
paramList.add(new BasicNameValuePair("fileId", materialBean | |
.getFile_id())); | |
paramList.add(new BasicNameValuePair("own", "-1")); | |
String key = "materialImg" + materialBean.getFile_id(); | |
Bitmap localBitmap = mImageCacheManager.getBitmap(key); | |
if (localBitmap != null) { | |
ResultHolder<Bitmap> resultHolder = new ResultHolder<Bitmap>(); | |
resultHolder.putBitmap(localBitmap); | |
onRequestSuccessListener.onFinish(resultHolder); | |
return; | |
} | |
RequestLoader.methodGetImg(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
if (resultHolder.getBitmap() != null) { | |
String key = "materialImg" | |
+ materialBean.getFile_id(); | |
mImageCacheManager.putBitmap(key, | |
resultHolder.getBitmap(), true); | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getMaterialList( | |
final int type, | |
final int begin, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_MATERIAL_LIST; | |
if (type == APIConstants.MATERIAL_TYPE_APP) { | |
url = APIConstants.URL_GET_APP_MSG_LIST; | |
} | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonHeader(headerList); | |
/* | |
* 1 = | |
* "https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/send&token=" ; | |
* 2 = "&lang=zh_CN"; | |
*/ | |
addCommonParam(paramList, true); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("type", "" + type)); | |
paramList.add(new BasicNameValuePair("begin", begin + "")); | |
paramList.add(new BasicNameValuePair("count", "10")); | |
if (type == 10) { | |
paramList.add(new BasicNameValuePair("action", "list")); | |
} | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
String referer = resultHolder.getRefererString(); | |
switch (type) { | |
case APIConstants.MATERIAL_TYPE_APP: | |
{ | |
MaterialResultHolder materialResultHolder = ResultParser | |
.parseAppMsgList(begin, source, | |
getCurrentUser(), referer); | |
resultHolder.putResult(materialResultHolder); | |
resultHolder.setParseCode(materialResultHolder | |
.getParseCode()); | |
} | |
break; | |
default: | |
{ | |
MaterialResultHolder materialResultHolder = ResultParser | |
.parseMaterialList(begin, source, | |
getCurrentUser(), referer); | |
resultHolder.putResult(materialResultHolder); | |
resultHolder.setParseCode(materialResultHolder | |
.getParseCode()); | |
} | |
break; | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getNewMessageCount( | |
final String lastMsgId, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_NEW_MESSAGE_COUNT; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/message?t=message/list&count=20&day=7&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonHeader(headerList); | |
addCommonParam(paramList, true); | |
paramList.add(new BasicNameValuePair("ajax", "1")); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("lastmsgid", lastMsgId)); | |
paramList.add(new BasicNameValuePair("t", "ajax-getmsgnum")); | |
// Log.e("get new msg count", "url |"+url); | |
// Log.e("get new msg count", "param |"+paramList.toString()); | |
// Log.e("get new msg count", "header |"+headerList.toString()); | |
RequestLoader.methodPost(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
// Log.e("get new msg count", "" + source); | |
try { | |
JSONObject resultJsonObject = new JSONObject(source); | |
resultHolder | |
.setParseCode(ResultParser.PARSE_SUCCESS); | |
} catch (Exception exception) { | |
Log.e("get new msg count result parse error", "" | |
+ exception); | |
resultHolder | |
.setParseCode(ResultParser.PARSE_FAILED); | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
} | |
public void getUploadInfo( | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_GET_UPLOAD_INFO; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=10&t=media/appmsg_list&type=10&action=list&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonHeader(headerList); | |
addCommonParam(paramList, false); | |
/* | |
* | |
* begin 0 count 10 lang zh_CN t media/list token 1402799954 type 2 | |
*/ | |
paramList.add(new BasicNameValuePair("begin", "0")); | |
paramList.add(new BasicNameValuePair("count", "10")); | |
paramList.add(new BasicNameValuePair("t", "media/list")); | |
paramList.add(new BasicNameValuePair("type", "2")); | |
RequestLoader.methodGet(url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String source = resultHolder.getResultString(); | |
String referer = resultHolder.getRefererString(); | |
int parseCode = ResultParser.parseUploadInfo(source, | |
mDataManager.getCurrentMessageHolder() | |
.getUploadHelper()); | |
resultHolder.setParseCode(parseCode); | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
// WeChatLoader.wechatGetUploadInfo( | |
// new WeChatLoader.WechatGetUploadInfo() { | |
// @Override | |
// public void onBack(int resultCode, String strResult) { | |
// | |
// switch (resultCode) { | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_OK: | |
// | |
// DataParser.parseUploadInfo(new DataParser.UploadInfoParseCallBack() { | |
// @Override | |
// public void onBack(int code) { | |
// if (code == DataParser.PARSE_SUCCESS) { | |
// onActionFinishListener.onFinish(ACTION_SUCCESS, null); | |
// | |
// Log.e("parse upload info success", "success"); | |
// | |
// } | |
// | |
// } | |
// }, strResult, mDataManager.getMessageHolders().get(userIndex) | |
// .getUploadHelper()); | |
// break; | |
// | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_ERROR_TIMEOUT: | |
// | |
// onActionFinishListener.onFinish(ACTION_TIME_OUT, | |
// null); | |
// break; | |
// | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_ERROR_OTHER: | |
// | |
// onActionFinishListener.onFinish(ACTION_OTHER, null); | |
// break; | |
// | |
// } | |
// } | |
// }, mDataManager.getUserGroup().get(userIndex)); | |
} | |
public void uploadFile( | |
final String filePath, | |
OnRequestSuccessListener<RequestLoader.ResultHolder> onRequestSuccessListener, | |
OnRequestErrorListener onRequestErrorListener) { | |
String url = APIConstants.URL_UPLOAD_FILE; | |
ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>(); | |
ArrayList<NameValuePair> headerList = new ArrayList<NameValuePair>(); | |
String referer = "https://mp.weixin.qq.com/cgi-bin/filepage?type=2&begin=0&count=10&t=media/list&token=" | |
+ getCurrentUser().getToken() + "&lang=zh_CN"; | |
headerList.add(new BasicNameValuePair("Referer", referer)); | |
addCommonHeader(headerList); | |
addCommonParam(paramList, false); | |
/* | |
* "https://mp.weixin.qq.com/cgi-bin/filetransfer? | |
* action=upload_material &f=json &ticket_id=redbot | |
* &ticket=a8332dff44d8d48172847c152e2d05c6c5e75997 &token=1402799954 | |
* &lang=zh_CN" | |
*/ | |
paramList.add(new BasicNameValuePair("action", "upload_material")); | |
paramList.add(new BasicNameValuePair("f", "json")); | |
paramList.add(new BasicNameValuePair("ticket_id", getCurrentUser() | |
.getUserName())); | |
paramList.add(new BasicNameValuePair("ticket", mDataManager | |
.getCurrentMessageHolder().getUploadHelper().getTicket())); | |
RequestLoader.methodUploadFile(filePath, url, headerList, paramList, | |
new ResultParseListener() { | |
@Override | |
public ResultHolder onParse(ResultHolder resultHolder) { | |
// TODO Auto-generated method stub | |
String result = resultHolder.getResultString(); | |
resultHolder.setParseCode(ResultParser.PARSE_FAILED); | |
try { | |
JSONObject resultObject = new JSONObject(result); | |
JSONObject retObject = resultObject | |
.getJSONObject("base_resp"); | |
int ret = DataParser.getRet(retObject); | |
if (ret == 0) { | |
UploadHelper.NowUploadBean nowUploadBean = DataParser | |
.getObjectFromJson( | |
result, | |
UploadHelper.NowUploadBean.class); | |
mDataManager.getCurrentMessageHolder() | |
.getUploadHelper() | |
.setNowUploadBean(nowUploadBean); | |
resultHolder.putResult(nowUploadBean); | |
resultHolder | |
.setParseCode(ResultParser.PARSE_SUCCESS); | |
// mDataManager.getMessageHolders().get(mDataManager.getcu) | |
// .getUploadHelper() | |
// .setNowUploadBean(nowUploadBean); | |
} | |
} catch (Exception e) { | |
} | |
return resultHolder; | |
} | |
}, onRequestSuccessListener, onRequestErrorListener); | |
// WeChatLoader.wechatUploadFile( | |
// new WeChatLoader.WechatUploadFileCallBack() { | |
// @Override | |
// public void onBack(int resultCode, String result) { | |
// | |
// switch (resultCode) { | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_OK: | |
// | |
// // | |
// {"base_resp":{"ret":0,"err_msg":"ok"},"location":"bizfile","type":"image","content":"200009060"} | |
// try { | |
// | |
// JSONObject resultObject = new JSONObject(result); | |
// JSONObject retObject = resultObject | |
// .getJSONObject("base_resp"); | |
// int ret = DataParser.getRet(retObject); | |
// if (ret == 0) { | |
// UploadHelper.NowUploadBean nowUploadBean = DataParser | |
// .getObjectFromJson( | |
// result, | |
// UploadHelper.NowUploadBean.class); | |
// | |
// mDataManager.getMessageHolders() | |
// .get(userIndex).getUploadHelper() | |
// .setNowUploadBean(nowUploadBean); | |
// onActionFinishListener.onFinish( | |
// ACTION_SUCCESS, nowUploadBean); | |
// | |
// } | |
// | |
// return; | |
// } catch (Exception e) { | |
// | |
// } | |
// onActionFinishListener.onFinish(ACTION_OTHER, null); | |
// | |
// break; | |
// | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_ERROR_TIMEOUT: | |
// | |
// onActionFinishListener.onFinish(ACTION_TIME_OUT, | |
// null); | |
// break; | |
// | |
// case WeChatLoader.WECHAT_RESULT_MESSAGE_ERROR_OTHER: | |
// | |
// onActionFinishListener.onFinish(ACTION_OTHER, null); | |
// break; | |
// | |
// } | |
// } | |
// }, filePath, mDataManager.getUserGroup().get(userIndex), | |
// mDataManager.getMessageHolders().get(userIndex) | |
// .getUploadHelper().getTicket()); | |
} | |
private UserBean getCurrentUser() { | |
return mDataManager.getCurrentUser(); | |
} | |
private MessageHolder getCurrentMessageHolder() { | |
return mDataManager.getCurrentMessageHolder(); | |
} | |
private FansHolder getCurrentFansHolder() { | |
return mDataManager.getCurrentFansHolder(); | |
} | |
private void addCommonParam(ArrayList<NameValuePair> paramArrayList, | |
boolean random) { | |
UserBean currentUser = mDataManager.getCurrentUser(); | |
if (currentUser != null) { | |
paramArrayList.add(new BasicNameValuePair("token", currentUser | |
.getToken())); | |
paramArrayList.add(new BasicNameValuePair("lang", "zh_CN")); | |
if (random) { | |
paramArrayList.add(new BasicNameValuePair("random", Util | |
.getRandomFloat(16))); | |
} | |
} | |
} | |
private void addCommonHeader(ArrayList<NameValuePair> headerArrayList) { | |
UserBean currentUser = mDataManager.getCurrentUser(); | |
if (currentUser != null) { | |
headerArrayList.add(new BasicNameValuePair("Cookie", | |
getCurrentUser().getCookie())); | |
// headerArrayList.add(new BasicNameValuePair("Cookie", "slave_sid=" | |
// + currentUser.getSlaveSid() + "; " + "slave_user=" | |
// + currentUser.getSlaveUser())); | |
} | |
} | |
private void asChrome(ArrayList<NameValuePair> headerArrayList) { | |
headerArrayList.add(new BasicNameValuePair("Accept", | |
"application/json, text/javascript, */*; q=0.01")); | |
headerArrayList.add(new BasicNameValuePair("Accept-Encoding", | |
"gzip,deflate,sdch")); | |
headerArrayList.add(new BasicNameValuePair("Accept-Language", | |
"zh-CN,zh;q=0.8")); | |
headerArrayList.add(new BasicNameValuePair("Connection", "keep-alive")); | |
headerArrayList.add(new BasicNameValuePair("Content-Type", | |
"application/x-www-form-urlencoded; charset=UTF-8")); | |
// headerArrayList.add(new BasicNameValuePair("Content-Length", "188")); | |
headerArrayList.add(new BasicNameValuePair("Host", "mp.weixin.qq.com")); | |
headerArrayList.add(new BasicNameValuePair("Origin", | |
"https://mp.weixin.qq.com")); | |
headerArrayList | |
.add(new BasicNameValuePair( | |
"User-Agent", | |
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36")); | |
headerArrayList.add(new BasicNameValuePair("X-Requested-With", | |
"XMLHttpRequest")); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment