entry : entries) {
118 | httpGet.setHeader(entry.getKey(), entry.getValue());
119 | }
120 | }
121 | CloseableHttpResponse response = httpClient.execute(httpGet);
122 | entity = response.getEntity();
123 | } catch (ClientProtocolException e) {
124 | logger.info(e.getMessage());
125 | } catch (IOException e) {
126 | logger.info(e.getMessage());
127 | }
128 |
129 | return entity;
130 | }
131 |
132 | /**
133 | * 处理POST请求
134 | *
135 | * @author https://github.com/yaphone
136 | * @date 2017年4月9日 下午7:06:35
137 | * @param url
138 | * @param params
139 | * @return
140 | */
141 | public HttpEntity doPost(String url, String paramsStr) {
142 | HttpEntity entity = null;
143 | HttpPost httpPost = new HttpPost();
144 | try {
145 | StringEntity params = new StringEntity(paramsStr, Consts.UTF_8);
146 | httpPost = new HttpPost(url);
147 | httpPost.setEntity(params);
148 | httpPost.setHeader("Content-type", "application/json; charset=utf-8");
149 | httpPost.setHeader("User-Agent", Config.USER_AGENT);
150 | httpPost.setHeader("client-version", Config.UOS_PATCH_CLIENT_VERSION);
151 | httpPost.setHeader("extspam", Config.UOS_PATCH_EXTSPAM);
152 | httpPost.setHeader("referer", Config.REFERER);
153 |
154 | CloseableHttpResponse response = httpClient.execute(httpPost);
155 | entity = response.getEntity();
156 | } catch (ClientProtocolException e) {
157 | logger.info(e.getMessage());
158 | } catch (IOException e) {
159 | logger.info(e.getMessage());
160 | }
161 |
162 | return entity;
163 | }
164 |
165 | /**
166 | * 上传文件到服务器
167 | *
168 | * @author https://github.com/yaphone
169 | * @date 2017年5月7日 下午9:19:23
170 | * @param url
171 | * @param reqEntity
172 | * @return
173 | */
174 | public HttpEntity doPostFile(String url, HttpEntity reqEntity) {
175 | HttpEntity entity = null;
176 | HttpPost httpPost = new HttpPost(url);
177 | httpPost.setHeader("User-Agent", Config.USER_AGENT);
178 | httpPost.setHeader("client-version", Config.UOS_PATCH_CLIENT_VERSION);
179 | httpPost.setHeader("extspam", Config.UOS_PATCH_EXTSPAM);
180 | httpPost.setHeader("referer", Config.REFERER);
181 |
182 | httpPost.setEntity(reqEntity);
183 | try {
184 | CloseableHttpResponse response = httpClient.execute(httpPost);
185 | entity = response.getEntity();
186 |
187 | } catch (Exception e) {
188 | logger.info(e.getMessage());
189 | }
190 | return entity;
191 | }
192 |
193 | public static CloseableHttpClient getHttpClient() {
194 | return httpClient;
195 | }
196 |
197 | }
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/SleepUtils.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils;
2 |
3 | /**
4 | * Created by xiaoxiaomo on 2017/5/6.
5 | */
6 | public class SleepUtils {
7 |
8 | /**
9 | * 毫秒为单位
10 | * @param time
11 | */
12 | public static void sleep( long time ){
13 | try {
14 | Thread.sleep( time );
15 | } catch (InterruptedException e) {
16 | e.printStackTrace();
17 | }
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/MsgCodeEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 | /**
4 | * 消息类型
5 | *
6 | * @author https://github.com/yaphone
7 | * @date 创建时间:2017年4月23日 下午12:15:00
8 | * @version 1.0
9 | *
10 | */
11 | public enum MsgCodeEnum {
12 |
13 | // public static final int MSGTYPE_TEXT = 1; // 文本消息类型
14 | // public static final int MSGTYPE_IMAGE = 3; // 图片消息
15 | // public static final int MSGTYPE_VOICE = 34; // 语音消息
16 | // public static final int MSGTYPE_VIDEO = 43; // 小视频消息
17 | // public static final int MSGTYPE_MICROVIDEO = 62; // 短视频消息
18 | // public static final int MSGTYPE_EMOTICON = 47; // 表情消息
19 | // public static final int MSGTYPE_APP = 49;
20 | // public static final int MSGTYPE_VOIPMSG = 50;
21 | // public static final int MSGTYPE_VOIPNOTIFY = 52;
22 | // public static final int MSGTYPE_VOIPINVITE = 53;
23 | // public static final int MSGTYPE_LOCATION = 48;
24 | // public static final int MSGTYPE_STATUSNOTIFY = 51;
25 | // public static final int MSGTYPE_SYSNOTICE = 9999;
26 | // public static final int MSGTYPE_POSSIBLEFRIEND_MSG = 40;
27 | // public static final int MSGTYPE_VERIFYMSG = 37;
28 | // public static final int MSGTYPE_SHARECARD = 42;
29 | // public static final int MSGTYPE_SYS = 10000;
30 | // public static final int MSGTYPE_RECALLED = 10002;
31 | MSGTYPE_TEXT(1, "文本消息类型"),
32 | MSGTYPE_IMAGE(3, "图片消息"),
33 | MSGTYPE_VOICE(34, "语音消息"),
34 | MSGTYPE_VIDEO(43, "小视频消息"),
35 | MSGTYPE_MICROVIDEO(62, "短视频消息"),
36 | MSGTYPE_EMOTICON(47, "表情消息"),
37 | MSGTYPE_MEDIA(49, "多媒体消息"),
38 | MSGTYPE_VOIPMSG(50, ""),
39 | MSGTYPE_VOIPNOTIFY(52, ""),
40 | MSGTYPE_VOIPINVITE(53, ""),
41 | MSGTYPE_LOCATION(48, ""),
42 | MSGTYPE_STATUSNOTIFY(51, ""),
43 | MSGTYPE_SYSNOTICE(9999, ""),
44 | MSGTYPE_POSSIBLEFRIEND_MSG(40, ""),
45 | MSGTYPE_VERIFYMSG(37, "好友请求"),
46 | MSGTYPE_SHARECARD(42, ""),
47 | MSGTYPE_SYS(10000, "系统消息"),
48 | MSGTYPE_RECALLED(10002, "")
49 |
50 | ;
51 |
52 | private int code;
53 | private String type;
54 |
55 | MsgCodeEnum(int code, String type) {
56 | this.code = code;
57 | this.type = type;
58 | }
59 |
60 | public int getCode() {
61 | return code;
62 | }
63 |
64 | public String getType() {
65 | return type;
66 | }
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/MsgTypeEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 |
4 | /**
5 | * 消息类型枚举类
6 | *
7 | * @author https://github.com/yaphone
8 | * @date 创建时间:2017年5月13日 下午11:53:00
9 | * @version 1.0
10 | *
11 | */
12 | public enum MsgTypeEnum {
13 | TEXT("Text", "文本消息"),
14 | PIC("Pic", "图片消息"),
15 | VOICE("Voice", "语音消息"),
16 | VIEDO("Viedo", "小视频消息"),
17 | NAMECARD("NameCard", "名片消息"),
18 | SYS("Sys", "系统消息"),
19 | VERIFYMSG("VerifyMsg", "添加好友"),
20 | MEDIA("app", "文件消息");
21 |
22 | private String type;
23 | private String code;
24 |
25 | MsgTypeEnum(String type, String code) {
26 | this.type = type;
27 | this.code = code;
28 | }
29 |
30 | public String getType() {
31 | return type;
32 | }
33 |
34 | public String getCode() {
35 | return code;
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/OsNameEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 | /**
4 | * 系统平台
5 | *
6 | * @author https://github.com/yaphone
7 | * @date 创建时间:2017年4月8日 下午10:36:28
8 | * @version 1.0
9 | *
10 | */
11 | public enum OsNameEnum {
12 | WINDOWS, LINUX, DARWIN, MAC, OTHER
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/ResultEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 | /**
4 | * 返回结构枚举类
5 | *
6 | * Created by xiaoxiaomo on 2017/5/6.
7 | */
8 | public enum ResultEnum {
9 |
10 | SUCCESS("200", "成功"),
11 | WAIT_CONFIRM("201", "请在手机上点击确认"),
12 | WAIT_SCAN("400", "请扫描二维码");
13 |
14 | private String code;
15 | private String msg;
16 |
17 | ResultEnum(String code, String msg) {
18 | this.code = code;
19 | this.msg = msg;
20 | }
21 |
22 | public String getCode() {
23 | return code;
24 | }
25 |
26 | // public static MsgInfoEnum getCode(String code) {
27 | // switch (code) {
28 | // case "Text":
29 | // return MsgInfoEnum.TEXT;
30 | // default:
31 | // return MsgInfoEnum.VIDEO;
32 | // }
33 | // }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/RetCodeEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 | public enum RetCodeEnum {
4 |
5 | NORMAL("0", "普通"),
6 | LOGIN_OUT("1102", "退出"),
7 | LOGIN_OTHERWHERE("1101", "其它地方登陆"),
8 | MOBILE_LOGIN_OUT("1102", "移动端退出"),
9 | UNKOWN("9999", "未知")
10 |
11 | ;
12 |
13 |
14 | private String code;
15 | private String type;
16 |
17 | RetCodeEnum(String code, String type) {
18 | this.code = code;
19 | this.type = type;
20 | }
21 |
22 | public String getCode() {
23 | return code;
24 | }
25 |
26 | public String getType() {
27 | return type;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/StorageLoginInfoEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 | import com.alibaba.fastjson.JSONArray;
4 | import com.alibaba.fastjson.JSONObject;
5 |
6 | import java.util.HashMap;
7 | import java.util.Map;
8 |
9 | /**
10 | * Created by xiaoxiaomo on 2017/5/7.
11 | */
12 | public enum StorageLoginInfoEnum {
13 |
14 | //URL
15 | url("url",new String()),
16 | fileUrl("fileUrl",new String()),
17 | syncUrl("syncUrl",new String()),
18 |
19 | deviceid("deviceid",new String()), //生成15位随机数
20 |
21 | //baseRequest
22 | skey("skey",new String()),
23 | wxsid("wxsid",new String()),
24 | wxuin("wxuin",new String()),
25 | pass_ticket("pass_ticket",new String()),
26 |
27 |
28 | InviteStartCount("InviteStartCount",new Integer(0)),
29 | User("User",new JSONObject()),
30 | SyncKey("SyncKey",new JSONObject()),
31 | synckey("synckey",new String()),
32 |
33 |
34 |
35 | MemberCount("MemberCount",new String()),
36 | MemberList("MemberList",new JSONArray()),
37 |
38 |
39 |
40 | ;
41 |
42 | private String key;
43 | private Object type;
44 |
45 | StorageLoginInfoEnum(String key, Object type) {
46 | this.key = key;
47 | this.type = type;
48 | }
49 |
50 | public String getKey() {
51 | return key;
52 | }
53 |
54 |
55 | public Object getType() {
56 | return type;
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/URLEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 | /**
4 | * URL
5 | * Created by xiaoxiaomo on 2017/5/6.
6 | */
7 | public enum URLEnum {
8 |
9 |
10 |
11 | BASE_URL("https://login.weixin.qq.com","基本的URL"),
12 | UUID_URL(BASE_URL.url+"/jslogin","UUIDLURL"),
13 | QRCODE_URL(BASE_URL.url+"/qrcode/","初始化URL"),
14 | STATUS_NOTIFY_URL(BASE_URL.url+"/webwxstatusnotify?lang=zh_CN&pass_ticket=%s","微信状态通知"),
15 | LOGIN_URL(BASE_URL.url+"/cgi-bin/mmwebwx-bin/login","登陆URL"),
16 | INIT_URL("%s/webwxinit?r=%s&pass_ticket=%s","初始化URL"),
17 | SYNC_CHECK_URL("/synccheck","检查心跳URL"),
18 | WEB_WX_SYNC_URL("%s/webwxsync?sid=%s&skey=%s&pass_ticket=%s","web微信消息同步URL"),
19 | WEB_WX_GET_CONTACT("%s/webwxgetcontact","web微信获取联系人信息URL"),
20 | WEB_WX_SEND_MSG("%s/webwxsendmsg","发送消息URL"),
21 | WEB_WX_UPLOAD_MEDIA("%s/webwxuploadmedia?f=json", "上传文件到服务器"),
22 | WEB_WX_GET_MSG_IMG("%s/webwxgetmsgimg", "下载图片消息"),
23 | WEB_WX_GET_VOICE("%s/webwxgetvoice", "下载语音消息"),
24 | WEB_WX_GET_VIEDO("%s/webwxgetvideo", "下载语音消息"),
25 | WEB_WX_PUSH_LOGIN("%s/webwxpushloginurl", "不扫码登陆"),
26 | WEB_WX_LOGOUT("%s/webwxlogout", "退出微信"),
27 | WEB_WX_BATCH_GET_CONTACT("%s/webwxbatchgetcontact?type=ex&r=%s&lang=zh_CN&pass_ticket=%s", "查询群信息"),
28 | WEB_WX_REMARKNAME("%s/webwxoplog?lang=zh_CN&pass_ticket=%s", "修改好友备注"),
29 | WEB_WX_VERIFYUSER("%s/webwxverifyuser?r=%s&lang=zh_CN&pass_ticket=%s", "被动添加好友"),
30 | WEB_WX_GET_MEDIA("%s/webwxgetmedia", "下载文件")
31 |
32 |
33 |
34 |
35 | ;
36 |
37 | private String url;
38 | private String msg;
39 |
40 | URLEnum(String url, String msg) {
41 | this.url = url;
42 | this.msg = msg;
43 | }
44 |
45 |
46 | public String getUrl() {
47 | return url;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/VerifyFriendEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums;
2 |
3 | /**
4 | * 确认添加好友Enum
5 | *
6 | * @author https://github.com/yaphone
7 | * @date 创建时间:2017年6月29日 下午9:47:14
8 | * @version 1.0
9 | *
10 | */
11 | public enum VerifyFriendEnum {
12 |
13 | ADD(2, "添加"),
14 | ACCEPT(3, "接受");
15 |
16 | private int code;
17 | private String desc;
18 |
19 | private VerifyFriendEnum(int code, String desc) {
20 | this.code = code;
21 | this.desc = desc;
22 | }
23 |
24 | public int getCode() {
25 | return code;
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/parameters/BaseParaEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums.parameters;
2 |
3 | /**
4 | *
5 | * 基本请求参数
6 | * 1. webWxInit 初始化
7 | * 2. wxStatusNotify 微信状态通知
8 | *
9 | *
10 | * Created by xiaoxiaomo on 2017/5/7.
11 | */
12 | public enum BaseParaEnum {
13 |
14 | Uin("Uin", "wxuin"),
15 | Sid("Sid", "wxsid"),
16 | Skey("Skey", "skey"),
17 | DeviceID("DeviceID", "pass_ticket");
18 |
19 | private String para;
20 | private String value;
21 |
22 | BaseParaEnum(String para, String value) {
23 | this.para = para;
24 | this.value = value;
25 | }
26 |
27 | public String para() {
28 | return para;
29 | }
30 |
31 |
32 | public Object value() {
33 | return value;
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/parameters/LoginParaEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums.parameters;
2 |
3 | /**
4 | * 登陆
5 | *
6 | * Created by xiaoxiaomo on 2017/5/7.
7 | */
8 | public enum LoginParaEnum {
9 |
10 | LOGIN_ICON("loginicon", "true"),
11 | UUID("uuid", ""),
12 | TIP("tip", "0"),
13 | R("r", ""),
14 | _("_", "");
15 |
16 | private String para;
17 | private String value;
18 |
19 | LoginParaEnum(String para, String value) {
20 | this.para = para;
21 | this.value = value;
22 | }
23 |
24 | public String para() {
25 | return para;
26 | }
27 |
28 | public String value() {
29 | return value;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums.parameters;
2 |
3 | /**
4 | * 状态通知
5 | *
6 | * Created by xiaoxiaomo on 2017/5/7.
7 | */
8 | public enum StatusNotifyParaEnum {
9 |
10 | CODE("Code", "3"),
11 | FROM_USERNAME("FromUserName", ""),
12 | TO_USERNAME("ToUserName", ""),
13 | CLIENT_MSG_ID("ClientMsgId", ""); //时间戳
14 |
15 | private String para;
16 | private String value;
17 |
18 | StatusNotifyParaEnum(String para, String value) {
19 | this.para = para;
20 | this.value = value;
21 | }
22 |
23 | public String para() {
24 | return para;
25 | }
26 |
27 | public String value() {
28 | return value;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/enums/parameters/UUIDParaEnum.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.enums.parameters;
2 |
3 | /**
4 | * UUID
5 | *
6 | * Created by xiaoxiaomo on 2017/5/7.
7 | */
8 | public enum UUIDParaEnum {
9 |
10 | APP_ID("appid", "wx782c26e4c19acffb"),
11 | FUN("fun", "new"),
12 | LANG("lang", "zh_CN"),
13 | REDIRECT_URL("redirect_uri",
14 | "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?mod=desktop"),
15 | _("_", "时间戳");
16 |
17 |
18 | private String para;
19 | private String value;
20 |
21 | UUIDParaEnum(String para, String value) {
22 | this.para = para;
23 | this.value = value;
24 | }
25 |
26 | public String para() {
27 | return para;
28 | }
29 |
30 | public String value() {
31 | return value;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/cn/zhouyafeng/itchat4j/utils/tools/CommonTools.java:
--------------------------------------------------------------------------------
1 | package cn.zhouyafeng.itchat4j.utils.tools;
2 |
3 | import java.io.StringReader;
4 | import java.util.ArrayList;
5 | import java.util.HashMap;
6 | import java.util.List;
7 | import java.util.Map;
8 | import java.util.Set;
9 | import java.util.regex.Matcher;
10 | import java.util.regex.Pattern;
11 |
12 | import javax.xml.parsers.DocumentBuilder;
13 | import javax.xml.parsers.DocumentBuilderFactory;
14 |
15 | import org.w3c.dom.Document;
16 | import org.xml.sax.InputSource;
17 |
18 | import com.alibaba.fastjson.JSON;
19 | import com.alibaba.fastjson.JSONArray;
20 | import com.alibaba.fastjson.JSONObject;
21 | import com.vdurmont.emoji.EmojiParser;
22 |
23 | import cn.zhouyafeng.itchat4j.utils.Config;
24 | import cn.zhouyafeng.itchat4j.utils.enums.OsNameEnum;
25 |
26 | /**
27 | * 常用工具类
28 | *
29 | * @author https://github.com/yaphone
30 | * @date 创建时间:2017年4月8日 下午10:59:55
31 | * @version 1.0
32 | *
33 | */
34 | public class CommonTools {
35 |
36 | public static boolean printQr(String qrPath) {
37 |
38 | switch (Config.getOsNameEnum()) {
39 | case WINDOWS:
40 | if (Config.getOsNameEnum().equals(OsNameEnum.WINDOWS)) {
41 | Runtime runtime = Runtime.getRuntime();
42 | try {
43 | runtime.exec("cmd /c start " + qrPath);
44 | } catch (Exception e) {
45 | e.printStackTrace();
46 | }
47 | }
48 | break;
49 | case MAC:
50 | if (Config.getOsNameEnum().equals(OsNameEnum.MAC)) {
51 | Runtime runtime = Runtime.getRuntime();
52 | try {
53 | runtime.exec("open " + qrPath);
54 | } catch (Exception e) {
55 | e.printStackTrace();
56 | }
57 | }
58 | break;
59 |
60 | default:
61 | break;
62 | }
63 | return true;
64 | }
65 |
66 | public static boolean clearScreen() {
67 | switch (Config.getOsNameEnum()) {
68 | case WINDOWS:
69 | if (Config.getOsNameEnum().equals(OsNameEnum.WINDOWS)) {
70 | Runtime runtime = Runtime.getRuntime();
71 | try {
72 | runtime.exec("cmd /c " + "cls");
73 | } catch (Exception e) {
74 | e.printStackTrace();
75 | }
76 | }
77 | break;
78 |
79 | default:
80 | break;
81 | }
82 | return true;
83 | }
84 |
85 | /**
86 | * 正则表达式处理工具
87 | *
88 | * @author https://github.com/yaphone
89 | * @date 2017年4月9日 上午12:27:10
90 | * @return
91 | */
92 | public static Matcher getMatcher(String regEx, String text) {
93 | Pattern pattern = Pattern.compile(regEx);
94 | Matcher matcher = pattern.matcher(text);
95 | return matcher;
96 | }
97 |
98 | /**
99 | * xml解析器
100 | *
101 | * @author https://github.com/yaphone
102 | * @date 2017年4月9日 下午6:24:25
103 | * @param text
104 | * @return
105 | */
106 | public static Document xmlParser(String text) {
107 | Document doc = null;
108 | StringReader sr = new StringReader(text);
109 | InputSource is = new InputSource(sr);
110 | DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
111 | try {
112 | DocumentBuilder builder = factory.newDocumentBuilder();
113 | doc = builder.parse(is);
114 | } catch (Exception e) {
115 | e.printStackTrace();
116 | }
117 | return doc;
118 | }
119 |
120 | public static JSONObject structFriendInfo(JSONObject userObj) {
121 | Map friendInfoTemplate = new HashMap();
122 | friendInfoTemplate.put("UserName", "");
123 | friendInfoTemplate.put("City", "");
124 | friendInfoTemplate.put("DisplayName", "");
125 | friendInfoTemplate.put("PYQuanPin", "");
126 | friendInfoTemplate.put("RemarkPYInitial", "");
127 | friendInfoTemplate.put("Province", "");
128 | friendInfoTemplate.put("KeyWord", "");
129 | friendInfoTemplate.put("RemarkName", "");
130 | friendInfoTemplate.put("PYInitial", "");
131 | friendInfoTemplate.put("EncryChatRoomId", "");
132 | friendInfoTemplate.put("Alias", "");
133 | friendInfoTemplate.put("Signature", "");
134 | friendInfoTemplate.put("NickName", "");
135 | friendInfoTemplate.put("RemarkPYQuanPin", "");
136 | friendInfoTemplate.put("HeadImgUrl", "");
137 |
138 | friendInfoTemplate.put("UniFriend", 0);
139 | friendInfoTemplate.put("Sex", 0);
140 | friendInfoTemplate.put("AppAccountFlag", 0);
141 | friendInfoTemplate.put("VerifyFlag", 0);
142 | friendInfoTemplate.put("ChatRoomId", 0);
143 | friendInfoTemplate.put("HideInputBarFlag", 0);
144 | friendInfoTemplate.put("AttrStatus", 0);
145 | friendInfoTemplate.put("SnsFlag", 0);
146 | friendInfoTemplate.put("MemberCount", 0);
147 | friendInfoTemplate.put("OwnerUin", 0);
148 | friendInfoTemplate.put("ContactFlag", 0);
149 | friendInfoTemplate.put("Uin", 0);
150 | friendInfoTemplate.put("StarFriend", 0);
151 | friendInfoTemplate.put("Statues", 0);
152 |
153 | friendInfoTemplate.put("MemberList", new ArrayList