/// <summary> /// 获取验证码2019年9月版本 /// </summary> /// <returns></returns> public Image GetValidateCode_201909() { Image img = null; try { var num = TimeHelp.GetTimeStamp(DateTime.Now); var callback = $"jQuery{RandomHelp.GetRandomNumByLength(20)}_{TimeHelp.GetTimeStamp(DateTime.Now)}"; RequestPackage request = new RequestPackage("/passport/captcha/captcha-image64"); request.Params.Add("login_site", "E"); request.Params.Add("module", "login"); request.Params.Add("rand", "sjrand"); request.Params.Add(num, ""); request.Params.Add("callback", callback); request.Params.Add("_", num); ArrayList list = TrainHttpContext.GetHtmlData(request); if (list.Count == 3) { var resStr = list[1].ToString().CallBackJson(); var streamJson = JsonConvert.DeserializeObject <ResCodeImgMsg>(resStr); if (streamJson.result_code.Equals("0")) { img = Base64ToImgHelp.CetFromBase64String(streamJson.image); } } else { Log.Write(LogLevel.Info, "请求/otn/login/init失败"); } } catch (Exception ex) { Log.Write(LogLevel.Error, ex.Message, ex); } return(img); }
/// <summary> /// 获取验证码 /// </summary> public Tuple <int, string> GetValidateCode(string url) { var code = 888; string path = string.Empty; try { RequestPackage request = new RequestPackage("/otn/login/init"); ArrayList list = TrainHttpContext.GetHtmlData(request); if (list.Count == 3) { request.RequestURL = "/passport/captcha/captcha-image"; request.Params.Add("login_site", "E"); request.Params.Add("module", "login"); request.Params.Add("rand", "sjrand"); request.Params.Add("0.21660476430599007", ""); using (Stream stream = TrainHttpContext.DownloadCode(request)) { path = list[2] + ".png"; if (SaveValidateCode(stream, Path.Combine(url, path))) { code = 0; } } } else { Log.Write(LogLevel.Info, "请求/otn/login/init失败"); } } catch (Exception ex) { Log.Write(LogLevel.Error, ex.Message, ex); } return(new Tuple <int, string>(code, path)); }