Отправка GET и POST запросов в C#

Программирование Отправка GET и POST запросов в C#

Помечено: 

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 1 неделя, 6 дн. назад.

  • Автор
    Сообщения
  • #5854
    @admin

    Отправка GET-запросов в C#

    Здесь все просто — создаем новый объект WebRequest, в конструктор которого передаем URL-адрес нужной страницы, получаем ответ методом GetResponse(). Читаем поток ответа сервера и делаем с ним что душе угодно.

    System.Net.WebRequest reqGET = System.Net.WebRequest.Create(@"http://site.ru/");
    System.Net.WebResponse resp = reqGET.GetResponse();
    System.IO.Stream stream = resp.GetResponseStream();
    System.IO.StreamReader sr = new System.IO.StreamReader(stream);
    string s = sr.ReadToEnd();
    Console.WriteLine(s);

    Отправка POST-запросов в C#

    Здесь немного сложнее. Перед отправкой данных необходимо объекту WebRequest задать ряд опций, определяющих метод запроса и тип содержимого. Затем необходимо закодировать отправляемые данные и записать их в поток запроса. После этого можно прочитать поток ответа.

    System.Net.WebRequest reqPOST = System.Net.WebRequest.Create(@"http://site.ru/send.php");
    reqPOST.Method = "POST"; // Устанавливаем метод передачи данных в POST
    reqPOST.Timeout = 120000; // Устанавливаем таймаут соединения
    reqPOST.ContentType = "application/x-www-form-urlencoded"; // указываем тип контента
    // передаем список пар параметров / значений для запрашиваемого скрипта методом POST
    // здесь используется кодировка cp1251 для кодирования кирилицы и спец. символов в значениях параметров
    // Если скрипт должен принимать данные в utf-8, то нужно выбрать Encodinf.UTF8
    byte[] sentData = Encoding.GetEncoding(1251).GetBytes("message=" + System.Web.HttpUtility.UrlEncode("отправляемые данные", Encoding.GetEncoding(1251)));
    reqPOST.ContentLength = sentData.Length;
    System.IO.Stream sendStream = reqPOST.GetRequestStream();
    sendStream.Write(sentData, 0, sentData.Length);
    sendStream.Close();
    //System.Net.WebResponse result = reqPOST.GetResponse();

    Базовая HTTP-авторизация

    System.Net.WebClient wc = new System.Net.WebClient();
    wc.Credentials = new System.Net.NetworkCredential("usr", "mypassword");
    byte[] response = wc.DownloadData("http://localhost/testlogin");

    Использование куков

    CookieContainer cookies = new CookieContainer();
    Request.CookieContainer = cookies;
    // И после каждого запроса обновляем контейнер:
    cookies = Request.CookieContainer;

Для ответа в этой теме необходимо авторизоваться.