Добрый день. Написал код, но не могу понять почему не работает. private string GetQiwiCookie() { string sCookies; HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://w.qiwi.ru/features.action"); myHttpWebRequest.Proxy = new WebProxy("127.0.0.1", 8888); myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"; myHttpWebRequest.Accept = "application/json, text/javascript, */*"; myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate"); myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"); HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); sCookies = String.IsNullOrEmpty(myHttpWebResponse.Headers["Set-Cookie"]) ? "" : myHttpWebResponse.Headers["Set-Cookie"]; return sCookies; } private string LoginQiwi() { string sCookies = GetQiwiCookie(); HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://w.qiwi.ru/login.action"); myHttpWebRequest.ServicePoint.Expect100Continue = false; myHttpWebRequest.Proxy = new WebProxy("127.0.0.1", 8888); myHttpWebRequest.Method = "POST"; myHttpWebRequest.Referer = "https://w.qiwi.ru/features.action"; myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"; myHttpWebRequest.Accept = "application/json, text/javascript, */*"; myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate"); myHttpWebRequest.Headers.Add("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"); myHttpWebRequest.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3"); myHttpWebRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; myHttpWebRequest.Headers.Add("Origin", "https://w.qiwi.ru"); myHttpWebRequest.Headers.Add("X-Requested-With", "XMLHttpRequest"); //myHttpWebRequest.KeepAlive = true; // передаем cookie, полученные в предыдущем запросе if (!String.IsNullOrEmpty(sCookies)) myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies); // ставим False, чтобы при получении кода 302 не делать // автоматического перенаправления myHttpWebRequest.AllowAutoRedirect = false; // передаем параметры string sQueryString = "source=0&phone=НОМЕР_ТЕЛЕФОНА&password=ПАРОЛЬ_ОТ_КИВИ&captcha=0"; byte[] ByteArr = System.Text.Encoding.GetEncoding(1251).GetBytes(sQueryString); myHttpWebRequest.ContentLength = ByteArr.Length; myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length); // делаем запрос HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); //парсинг string url = "https://w.qiwi.ru/features.action"; string html = string.Empty; string pattern = "Баланс: (.*)"; HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url); HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); StreamReader sr = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding(1251)); html = sr.ReadToEnd(); Match res; res = Regex.Match(html, pattern); return res.Groups[1].ToString(); }
Я особо не присматривался, но как вариант - судя по порту используется Fiddler, на SSL он подсовывает свой сертификат, в коде нету игнорирования проверки подлинности. P.S. Using using.
добавил System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; но картина не изменилась..