/// <summary> /// 启动验证 /// </summary> /// <param name="url">验证地址</param> public void StartVaildate(string url) { Geetest.OnValidate_Success += Geetest_OnValidate_Success; Geetest.StartValidate(); var settings = new CefSettings(); settings.CefCommandLineArgs.Add("proxy-server", $"127.0.0.1:{Geetest.Port}"); settings.CefCommandLineArgs.Add("enable-media-stream", "1"); settings.CefCommandLineArgs.Add("disable-gpu", "1"); Cef.Initialize(settings); browser = new ChromiumWebBrowser() { Width = content.Width, Height = content.Height }; content.Children.Add(browser); browser.Margin = new Thickness(0, 0, 0, 0); browser.Address = url; browser.FrameLoadEnd += Browser_FrameLoadEnd; }
/// <summary> /// 启动验证 /// </summary> /// <param name="url">验证地址</param> public void StartVaildate(string url) { Geetest.OnValidate_Success += Geetest_OnValidate_Success; Geetest.StartValidate(); var settings = new CefSettings(); settings.CefCommandLineArgs.Add("--proxy-server", $"127.0.0.1:{Geetest.Port}"); settings.CefCommandLineArgs.Add("enable-media-stream", "1"); settings.CefCommandLineArgs.Add("disable-gpu", "1"); settings.CefCommandLineArgs.Add("--ignore-urlfetcher-cert-requests", "1"); settings.CefCommandLineArgs.Add("--ignore-certificate-errors", "1"); settings.CefCommandLineArgs.Add("--disable-web-security", "1"); Cef.Initialize(settings); browser = new ChromiumWebBrowser(url) { Width = Width, Height = Height }; Controls.Add(browser); browser.Left = 0; browser.Top = 0; browser.FrameLoadEnd += Browser_FrameLoadEnd; }
private static async Task Get() { using (HttpClient http = new HttpClient()) { //三代汉字 var resp = await http.GetStringAsync("http://www.geetest.com/demo/gt/register-click?t=1527475267971"); //三代滑块 //var resp = await http.GetStringAsync("http://www.geetest.com/demo/gt/register-slide?t=1527479423500"); //二代滑块 //var resp = await http.GetStringAsync("http://id.ourgame.com/id.ourgame.com/captcha!lzCaptcha.do?t=0.6296260015670256"); var json = JObject.Parse(resp); var gt = json["gt"].ToString(); var challenge = json["challenge"].ToString(); var result = await Geetest.Recognition(new GeetestInput { //WebProxy = new WebProxy(), //此处传入代理(如果是用的代理) Challenge = challenge, Gt = gt, User = "", //此处传入key Referer = new Uri("http://www.gsxt.gov.cn/") }); switch (result.Code) { case Code.Success: //识别成功 Console.WriteLine("challenge:" + result.Challenge); Console.WriteLine("validate:" + result.Validate); Console.WriteLine("seccode:" + result.SecCode); Console.WriteLine("params:" + result); break; case Code.InMaintenance: //系统维护,后续逻辑 break; case Code.BadIp: //IP被极验封了,该IP短时间内(预计封1-3个小时)不可用于极验3代。此处将该IP加入黑名单 break; case Code.UserError: //帐号到期,触发告警通知,提示财务或负责人 break; default: //常规错误,记录SDK返回的错误描述 Console.WriteLine(result.Message); break; } } Thread.Sleep(-1); }
/// <summary> /// 获取极验结果 /// </summary> /// <returns></returns> public Jiyan GetJiyan() { string geetest_code = GetGeetet(); Geetest geetest = (Geetest)HttpHelper.JsonToObject <Geetest>(geetest_code); Dictionary <string, string> d = new Dictionary <string, string>(); d.Add("gt", geetest.gt); d.Add("challenge", geetest.challenge); d.Add("model", "3"); d.Add("supportclick", "jiyan"); d.Add("referer", "https://www.228.com.cn/auth/login"); d.Add("return", "json"); d.Add("user", "dragon8jiyan"); d.Add("pass", "202063"); d.Add("devuser", "dragon8jiyan"); string strHash = Functions.DictionaryToPostString(d); HttpItem item = new HttpItem() { URL = "http://jiyanapi.c2567.com/shibie?" + strHash, Method = "GET", Timeout = 30000, ResultType = ResultType.String }; HttpResult result = http.GetHtml(item); string html = result.Html; string cookie = result.Cookie; Jiyan jy = (Jiyan)HttpHelper.JsonToObject <Jiyan>(html); if (jy.status == "stop") { MessageBox.Show("极验账户积分不足!请充值再尝试!"); throw new Exception("极验账户积分不足!请充值再尝试!"); } if (jy.status != "ok") { MessageBox.Show("获取失败,正在重新获取..."); return(GetJiyan()); } return(jy); }