byte[] _2_Response(LxwResponse o) { var bytes = new byte[o.BodyStream.Length]; o.BodyStream.Read(bytes, 0, bytes.Length); o.BodyStream.Seek(0, SeekOrigin.Begin); return(bytes); }
void _12_Response(LxwResponse o) { var folder = CreateWeiXinFilesFolder(); using (var map = new Bitmap(o.BodyStream)) { var type = o.ResponseHeader.ContentType.ToLower(); //if(type.StartsWith("audio/")) //if (type.StartsWith("image/")) //if (type.StartsWith("audio/")) var ext = MimeMapping.GetExtByMime(type); map.Save(Path.Combine(folder, DateTime.Now.ToString("yyyyMMddHHmmssfff") + GenerateDeviceId() + ext), MimeMapping.GetImageFormat(ext)); } }
void _14_Response(LxwResponse o) { var folder = CreateWeiXinFilesFolder(); //Bitmap map = new Bitmap(o.BodyStream); var type = o.ResponseHeader.ContentType.ToLower(); //if(type.StartsWith("audio/")) //if (type.StartsWith("image/")) //if (type.StartsWith("audio/")) var ext = MimeMapping.GetExtByMime(type); //写入文件 using (var fs = new FileStream(Path.Combine(folder, DateTime.Now.ToString("yyyyMMddHHmmssfff") + GenerateDeviceId() + o.ResponseHeader.AttachmentFilername), FileMode.OpenOrCreate)) { fs.Write(o.Body, 0, o.Body.Length); } }
void _4_Response(LxwResponse o) { var value = o.Value; if (value.IndexOf("pass_ticket") == -1) { throw new Exception("没有得到wxsid信息" + value); } var weixin = Xml2Json <WeiXinTicket>(value); //存储数据 WEB.Add(SKEY, weixin.skey); WEB.Add(WXSID, weixin.wxsid); WEB.Add(WXUIN, weixin.wxuin); WEB.Add(PASS_TICKET, weixin.pass_ticket); }
bool _3_Response(LxwResponse o) { var result = o.Value; if (result.IndexOf("window.redirect_uri=") != -1) { var redirect_uri = SearchKey(result, "redirect_uri", "\"(.*?)\""); WEB.Add(REDIRECT_URL, redirect_uri); WEB.Add(NUMBER, ""); if (redirect_uri.IndexOf("wx2.qq.com") != -1) { WEB.Add(NUMBER, "2"); } return(true); } return(false); }
void _5_Response(LxwResponse o) { var login = JsonConvert.DeserializeObject <WEBWXINITRootObject>(o.Value); if (login.BaseResponse.Ret != 0) { throw new Exception("没有返回正确的数据,webwxinit错误!"); } // USER_INFO LoginUser = login.User; WEB.Add(SYNCKEY, string.Join("|", login.SyncKey.List.Select(kv => $"{kv.Key}_{kv.Val}"))); WEB.Add(SYNCKEY_LONG, JsonConvert.SerializeObject(login.SyncKey)); foreach (var item in login.ContactList.Where(c => string.IsNullOrEmpty(c.KeyWord)).OrderByDescending(c => c.ContactFlag)) { USER_DI.Add((item.UserName, item)); } }
void _8_Response(LxwResponse o) { var value = o.Value; if (value.IndexOf("\"SyncKey\": ") == -1) { throw new Exception("SyncKey 没有捕获到"); } var root = JsonConvert.DeserializeObject <SyncRoot>(value); if (root.SyncKey != null && root.SyncKey.Count != null) { WEB.Add(SYNCKEY_LONG, JsonConvert.SerializeObject(root.SyncKey)); } foreach (var item in root.AddMsgList) { var content = item.Content.Replace(">", ">").Replace("<", "<").Replace("<br/>", ""); //处理消息 _9_DoMessage(content, item, item.MsgId); } }
bool _7_Response(LxwResponse o) { string value = o.Value; if (value.Contains("1101")) { RecordMessage("µÇ¼ʧ°Ü£¬Çë¹Ø±ÕÖØг¢ÊÔ:" + WEB[SYNCKEY], null); return(false); } if (bFirst) { RecordMessage("µÇ¼³É¹¦!", null); bFirst = false; } //1=>window.synccheck={retcode:"0",selector:"2"} if (value.IndexOf("selector:\"0\"") == -1 && value.IndexOf("retcode:\"0\"") != -1) { _8_WEBWXSYNC(); } return(true); }
void _10_Response(LxwResponse o) { //不做任何处理 }
private LxwResponse ReadResponse(Stream sm) { CancellationTokenSource cancelSource = new CancellationTokenSource(); Task <string> myTask = Task.Factory.StartNew <string>( new Func <object, string>(ReadHeaderProcess), new TaskArguments(cancelSource, sm), cancelSource.Token); LxwResponse response = null; if (myTask.Wait(ReadTimeOut * 1000)) //尝试3秒时间读取协议头 { //头部信息 string header = myTask.Result; if (!string.IsNullOrEmpty(header)) { //代表继续接收信息,这部分信息先不考虑处理 if (header.StartsWith("HTTP/1.1 100")) { return(ReadResponse(sm)); } //处理头文件信息 var responseHeader = new LxwResponseHeader(header, CookieMethod); while (true) { if (responseHeader.ContentLength > 0) { var buff = new byte[responseHeader.ContentLength]; int inread = sm.Read(buff, 0, buff.Length); while (inread < buff.Length) { inread += sm.Read(buff, inread, buff.Length - inread); } response = new LxwResponse(buff, responseHeader); break; } if (responseHeader.TransferEncoding) { var buff = ChunkedReadResponse(sm); response = new LxwResponse(buff, responseHeader); break; } { //如果走到这里,就比较特殊了,可以不考虑 var buff = SpecialReadResponse(sm); response = new LxwResponse(buff, responseHeader); break; } } } } else { cancelSource.Cancel(); //超时的话,别忘记取消任务哦 } return(response); }
string _17_Response(LxwResponse o) { return(JObject.Parse(o.Value)["MediaId"]?.Value <string>()); }
void _1_Response(LxwResponse o) { var value = SearchKey(o.Value, "200", "\"(.*?)\""); WEB.Add(UUID, value); }
MemberItem[] _6_Response(LxwResponse o) { var ro = JsonConvert.DeserializeObject <WEBWXGETCONTACTRootObject>(o.Value); return(ro.MemberList); }