/// <summary> /// 获取验证码 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string GetValidateCode(string url, CookieContainer webCookie, out Bitmap bmpImage) { try { //获取验证码 Image HeadImage = HttpHelps.GetPicture(url, webCookie); //处理图片 Bitmap bitmap = new Bitmap(HeadImage); UnCodebase ud = new UnCodebase(bitmap); ud.GrayByPixels(); ud.ClearNoise(128, 2); //识别验证码 tessnet2.Tesseract ocr = new tessnet2.Tesseract(); //声明一个OCR类 ocr.SetVariable("tessedit_char_whitelist", "0123456789"); //设置识别变量,当前只能识别数字。 ocr.Init(Application.StartupPath + @"\\tmpe", "eng", true); //应用当前语言包。 List <tessnet2.Word> result = ocr.DoOCR(ud.bmpobj, Rectangle.Empty); //执行识别操作 string validateCode = result[0].Text; //pictureBox1.Image = ud.bmpobj; bmpImage = ud.bmpobj; return(validateCode); } catch (Exception ex) { function.log("验证码获取错误" + ex.Message); bmpImage = null; return(""); } }
/// <summary> /// 获取图片缩略图 /// </summary> /// <param name="MsgID"></param> /// <param name="type"></param> /// <returns></returns> public Image GetImage(string MsgID, string type) { if (type == "slave") { uri = domain + "/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=" + MsgID + "&skey=" + skey + "&type=slave"; } if (type == "slaveImage") { uri = domain + "/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=" + MsgID + "&skey=" + skey; } if (type == "location") { uri = domain + "/cgi-bin/mmwebwx-bin/webwxgetpubliclinkimg?url=xxx&msgid=" + MsgID + "&pictype=location"; } return(HttpHelps.GetPicture(uri, cookie)); }
/// <summary> /// 获取原创表情 /// </summary> /// <param name="MsgID"></param> /// <returns></returns> public Image GetOriginal(string MsgID) { Image img = HttpHelps.GetPicture(domain + "/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=" + MsgID + "&skey=" + skey + "&type=big", cookie); return(img); }
/// <summary> /// 获取离线消息推送 /// </summary> public void OfflineMessage() { string uri = domain + "/cgi-bin/mmwebwx-bin/webwxinit?pass_ticket=" + pass_ticket + "&r=" + function.MilliTime() + "&skey=" + skey; string Date = "{\"BaseRequest\":{\"Uin\":\"" + wxuin + "\",\"Sid\":\"" + wxsid + "\",\"Skey\":\"" + skey + "\",\"DeviceID\":\"" + DeviceID() + "\"}}"; string s = HttpHelps.Post(Date, uri, ref cookie, Encoding.UTF8); //cookie = Regex.Replace(cookie, "^[Domain].*[(GMT)|(GMT,)]$", ""); cookie = function.Deletetext(cookie, "Domain", "GMT").Replace("Secure,", null); webwx_data_ticket = "wxuin=" + wxuin + "; wxsid=" + wxsid + "; webwx_data_ticket=" + function.middlestring(cookie, "webwx_data_ticket=", ";") + ";"; Offline = JObject.Parse(s); //获取本号参数 UserName = Offline["User"]["UserName"].ToString(); NickName = Offline["User"]["NickName"].ToString(); HeadImage = function.CreateRoundRectImage(function.SoftenImage(new Bitmap(HttpHelps.GetPicture(domain + Offline["User"]["HeadImgUrl"].ToString(), cookie)))); session = Offline["ContactList"]; JToken record = Offline["SyncKey"]; //获取POST秘钥 SkeyPost = record.ToString(); //获取GET秘钥 string str = ""; foreach (JObject jp in record["List"]) { str = str + jp["Key"].ToString() + "_"; str = str + jp["Val"].ToString() + "|"; } SkeyGet = str.Substring(0, str.Length - 1); FriendsList(true); }