private async void Send_Message(object sender, RoutedEventArgs e) { if (friend != null) { String uri = "http://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg" + "?sid=" + cookie.wxsid + "&skey=" + cookie.skey + "&pass_ticket=" + cookie.pass_ticket + "&r=" + Time.Now(); BaseRequest baseRequest = new BaseRequest(cookie.wxuin, cookie.wxsid, cookie.skey); JObject jsonObj = new JObject(); jsonObj.Add("BaseRequest", JObject.FromObject(baseRequest)); SendMsg msg = new SendMsg(); msg.FromUserName = wxInit.User.UserName; msg.ToUserName = friend.UserName; msg.Type = 1; msg.Content = send.Text; msg.ClientMsgId = Time.Now(); msg.LocalID = Time.Now(); jsonObj.Add("Msg", JObject.FromObject(msg)); String json = jsonObj.ToString().Replace("\r\n", ""); string result = await Post.Get_Response_Str(uri, json); for (int i = 0; i < ContactView.AllItems.Count; i++) { if (friend.UserName == ContactView.AllItems[i].UserName) { bubble m = new bubble(); m.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left; m.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top; m.Text = send.Text; uri = "http://wx2.qq.com" + wxInit.User.HeadImgUrl; var response = await Get.Get_Response_Str(uri, cookie_str); var r = await response.Content.ReadAsByteArrayAsync(); var bit = await ByteArrayToBitmapImage(r); m.setImg(bit); m.setNickName(wxInit.User.NickName); Tile.TileManger.Tile(wxInit.User.NickName, ContactView.AllItems[i].NickName); ContactView.AllItems[i].dialog.Add(m); if (i != 0) { var u = ContactView.AllItems[i]; ContactView.AllItems.RemoveAt(i); ContactView.AllItems.Insert(0, u); } sp1.Children.Add(m); send.Text = ""; } } } }
private async void Get_Message() { String uri = "http://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxsync" + "?pass_ticket=" + cookie.pass_ticket + "&r=" + Time.Now(); BaseRequest baseRequest = new BaseRequest(cookie.wxuin, cookie.wxsid, cookie.skey); JObject jsonObj = new JObject(); jsonObj.Add("BaseRequest", JObject.FromObject(baseRequest)); jsonObj.Add("SyncKey", JObject.FromObject(cookie.syncKey)); jsonObj.Add("rr", Time.Now()); String json = jsonObj.ToString().Replace("\r\n", ""); string result = await Post.Get_Response_Str(uri, json); Debug.WriteLine(result); var message = Message.FromJson(result); cookie.syncKey = message.SyncKey; foreach (var user in message.AddMsgList) { if (user.Content.Equals("") || (user.MsgType != 1 && user.MsgType != 3 && user.MsgType != 49) || (user.MsgType == 49 && user.AppMsgType != 5 && user.AppMsgType != 3)) { continue; } if (user.FromUserName == wxInit.User.UserName) { bool flag = false; for (int i = 0; i < ContactView.AllItems.Count; i++) { if (user.ToUserName == ContactView.AllItems[i].UserName) { BitmapImage bitmap = new BitmapImage(); bool isImg = false; if (user.MsgType == 3) { String u = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=" + user.MsgId + "&skey=" + cookie.skey + "&type=slave"; var res = await Get.Get_Response_Str(u, cookie_str); byte[] b = await res.Content.ReadAsByteArrayAsync(); bitmap = await ByteArrayToBitmapImage(b); isImg = true; } bubble msg = new bubble(); msg.Text = user.Content; msg.setNickName(ContactView.AllItems[i].NickName); if (isImg) { msg.setImg_msg(bitmap); } if (user.MsgType == 49 && user.AppMsgType == 5) { msg.setHyberLink(user.FileName, user.Url); } if (user.MsgType == 49 && user.AppMsgType == 3) { String str; str = user.Content.Replace("<", "<"); str = str.Replace(">", ">"); str = str.Replace("<br/>", "\n"); Debug.WriteLine(str); var music = Music.GetMusic(str); Debug.WriteLine(music.appmsg.dataurl); msg.setMedia(music.appmsg.dataurl); msg.setName(music.appmsg.title); } uri = "http://wx2.qq.com" + wxInit.User.HeadImgUrl; var response = await Get.Get_Response_Str(uri, cookie_str); var r = await response.Content.ReadAsByteArrayAsync(); var bit = await ByteArrayToBitmapImage(r); msg.setImg(bit); msg.setNickName(wxInit.User.NickName); Tile.TileManger.Tile(wxInit.User.NickName, ContactView.AllItems[i].NickName); ContactView.AllItems[i].dialog.Add(msg); if (i != 0) { var u = ContactView.AllItems[i]; ContactView.AllItems.RemoveAt(i); ContactView.AllItems.Insert(0, u); } if (friend != null && friend.UserName == user.ToUserName) { sp1.Children.Add(msg); } flag = true; break; } } if (!flag) { foreach (var member in contact.MemberList) { if (user.ToUserName == member.UserName && !member.UserName[1].Equals('@')) { FriendList friend = new FriendList(); friend.UserName = user.ToUserName; friend.NickName = member.NickName; friend.dialog = new List <bubble>(); BitmapImage bitmap = new BitmapImage(); bool isImg = false; if (user.MsgType == 3) { String u = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=" + user.MsgId + "&skey=" + cookie.skey + "&type=slave"; var res = await Get.Get_Response_Str(u, cookie_str); byte[] b = await res.Content.ReadAsByteArrayAsync(); bitmap = await ByteArrayToBitmapImage(b); isImg = true; } uri = "http://wx2.qq.com" + member.HeadImgUrl; var response = await Get.Get_Response_Str(uri, cookie_str); var result_byte = await response.Content.ReadAsByteArrayAsync(); friend.bitmap = await ByteArrayToBitmapImage(result_byte); bubble msg = new bubble(); // msg.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left; //msg.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top; msg.Text = user.Content; if (isImg) { msg.setImg_msg(bitmap); } if (user.MsgType == 49 && user.AppMsgType == 5) { msg.setHyberLink(user.FileName, user.Url); } if (user.MsgType == 49 && user.AppMsgType == 3) { String str; str = user.Content.Replace("<", "<"); str = str.Replace(">", ">"); str = str.Replace("<br/>", "\n"); Debug.WriteLine(str); var music = Music.GetMusic(str); Debug.WriteLine(music.appmsg.dataurl); msg.setMedia(music.appmsg.dataurl); msg.setName(music.appmsg.title); } uri = "http://wx2.qq.com" + wxInit.User.HeadImgUrl; response = await Get.Get_Response_Str(uri, cookie_str); var r = await response.Content.ReadAsByteArrayAsync(); var bit = await ByteArrayToBitmapImage(r); msg.setImg(bit); msg.setNickName(wxInit.User.NickName); Tile.TileManger.Tile(wxInit.User.NickName, member.NickName); friend.dialog.Add(msg); ContactView.AllItems.Insert(0, friend); break; } } } } else { bool flag = false; for (int i = 0; i < ContactView.AllItems.Count; i++) { if (user.FromUserName == ContactView.AllItems[i].UserName) { Debug.WriteLine(user.MsgType); BitmapImage bit = new BitmapImage(); bool isImg = false; if (user.MsgType == 3) { String u = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=" + user.MsgId + "&skey=" + cookie.skey + "&type=slave"; var response = await Get.Get_Response_Str(u, cookie_str); byte[] r = await response.Content.ReadAsByteArrayAsync(); bit = await ByteArrayToBitmapImage(r); isImg = true; } bubble msg = new bubble(); //msg.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left; //msg.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top; msg.Text = user.Content; if (isImg) { msg.setImg_msg(bit); } if (user.MsgType == 49 && user.AppMsgType == 5) { msg.setHyberLink(user.FileName, user.Url); } if (user.MsgType == 49 && user.AppMsgType == 3) { String str; str = user.Content.Replace("<", "<"); str = str.Replace(">", ">"); str = str.Replace("<br/>", "\n"); Debug.WriteLine(str); var music = Music.GetMusic(str); Debug.WriteLine(music.appmsg.dataurl); msg.setMedia(music.appmsg.dataurl); msg.setName(music.appmsg.title); } msg.setImg(ContactView.AllItems[i].bitmap); msg.setNickName(ContactView.AllItems[i].NickName); Tile.TileManger.Tile(ContactView.AllItems[i].NickName, wxInit.User.NickName); ContactView.AllItems[i].dialog.Add(msg); if (i != 0) { var u = ContactView.AllItems[i]; ContactView.AllItems.RemoveAt(i); ContactView.AllItems.Insert(0, u); } if (friend != null && friend.UserName == user.FromUserName) { sp1.Children.Add(msg); } flag = true; break; } } if (!flag) { foreach (var member in contact.MemberList) { if (user.FromUserName == member.UserName && !member.UserName[1].Equals('@')) { FriendList friend = new FriendList(); friend.UserName = user.FromUserName; friend.NickName = member.NickName; friend.dialog = new List <bubble>(); BitmapImage bitmap = new BitmapImage(); bool isImg = false; if (user.MsgType == 3) { String u = "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=" + user.MsgId + "&skey=" + cookie.skey + "&type=slave"; var res = await Get.Get_Response_Str(u, cookie_str); byte[] b = await res.Content.ReadAsByteArrayAsync(); bitmap = await ByteArrayToBitmapImage(b); isImg = true; } uri = "http://wx2.qq.com" + member.HeadImgUrl; var response = await Get.Get_Response_Str(uri, cookie_str); var result_byte = await response.Content.ReadAsByteArrayAsync(); friend.bitmap = await ByteArrayToBitmapImage(result_byte); bubble msg = new bubble(); // msg.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left; //msg.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top; msg.Text = user.Content; if (isImg) { msg.setImg_msg(bitmap); } if (user.MsgType == 49 && user.AppMsgType == 5) { msg.setHyberLink(user.FileName, user.Url); } if (user.MsgType == 49 && user.AppMsgType == 3) { String str; str = user.Content.Replace("<", "<"); str = str.Replace(">", ">"); str = str.Replace("<br/>", "\n"); Debug.WriteLine(str); var music = Music.GetMusic(str); Debug.WriteLine(music.appmsg.dataurl); msg.setMedia(music.appmsg.dataurl); msg.setName(music.appmsg.title); } uri = "http://wx2.qq.com" + member.HeadImgUrl; response = await Get.Get_Response_Str(uri, cookie_str); var r = await response.Content.ReadAsByteArrayAsync(); var bit = await ByteArrayToBitmapImage(r); msg.setImg(bit); msg.setNickName(member.NickName); Tile.TileManger.Tile(member.NickName, wxInit.User.NickName); friend.dialog.Add(msg); ContactView.AllItems.Insert(0, friend); break; } } } } } Debug.WriteLine("读取消息"); Debug.WriteLine("BaseResponse.Ret:" + message.BaseResponse.Ret); Debug.WriteLine("AddMsgCount:" + message.AddMsgCount); foreach (var a in message.AddMsgList) { Debug.WriteLine(a.Content); } Debug.WriteLine("ModContactCount:" + message.ModContactCount); Debug.WriteLine("DelContactCount:" + message.DelContactCount); Debug.WriteLine("ModChatRoomMemberCount:" + message.ModChatRoomMemberCount); }