Скачать файл после аутентификации (не Basic) - C#

Узнай цену своей работы

Формулировка задачи:

Подскажите пример консольной программы для получения данных с сайт (после авторизации)? К примеру, нужно получить баланс с сайта TELE2 или MTS (капчу не учитывать). То есть приложению нужно:
  1. зайти на сайт;
  2. пройти аутентификацию (не Basic);
  3. перейти на страницу;
  4. отправить запрос на формирования отчета (на определенный период);
  5. скачать файл.
Буду благодарен если подскажете в каком направлении двигаться, чтобы добиться хотя бы 1,2,3 пункта.

Решение задачи: «Скачать файл после аутентификации (не Basic)»

textual
Листинг программы
public HttpWebResponse Send(string url, string data)
        {
            
            CookieContainer cookieJar = new CookieContainer();
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Accept = "image/jpeg, application/xaml+xml, image/gif, image/pjpeg, image/png, application/vnd.ms-excel, */*";
            request.Headers["Accept-Language"] = "en-US";
            request.UserAgent = "My user agent";
            request.KeepAlive = false;
            request.AllowAutoRedirect = true;
            request.Timeout = 60000;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            byte[] byteArray = Encoding.UTF8.GetBytes(data);
            request.ContentLength = byteArray.Length;
            request.CookieContainer = cookieJar;
            using (var dataStream = request.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);
            }
            ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("site.com"));
            HttpWebResponse response = null;
            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message + " " + e.InnerException, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
            
            return response;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы