Рефетека.ру / Информатика и програм-ие

Авторский материал: Отправка запроса методом POST на сервер из .NET приложения

Отправка запроса методом POST на сервер из .NET приложения

Христофоров Юрий

Задача: требуется из Windows .NET приложения отправить POST запрос на сервер и получить результат работы запрошенного методом POST скрипта. Предусмотреть ситуацию, при которой скрипт на сервере защищен Basic авторизацией.

Ниже приведен пример на C# для решения данной задачи.

C# код:

// необходимые библиотеки

using System;

using System.Web;

using System.Collections;

using System.Text;

using System.IO;

using System.Net;

using System.Data;

// ......

WebResponse result = null;

WebRequest req = null;

Stream newStream = null;

Stream ReceiveStream = null;

StreamReader sr = null;

try

{

 // Url запрашиваемого методом POST скрипта

 req = WebRequest.Create("http://www.servername.com/script.cgi");

 req.Method = "POST";

 req.Timeout = 120000;

 // эта строка необходима только при защите скрипта на сервере Basic авторизацией

 //req.Credentials = new NetworkCredential("login", "password");

 req.ContentType = "application/x-www-form-urlencoded";

 byte[] SomeBytes = null;

 // передаем список пар параметров / значений для запрашиваемого скрипта методом POST

 // в случае нескольких параметров необходимо использовать символ & для разделения параметров

 // в данном случае используется кодировка windows-1251 для Url кодирования спец. символов значения параметров

 SomeBytes = Encoding.GetEncoding(1251).GetBytes("ParamName1=" + HttpUtility.UrlEncode("ParamValue1", Encoding.GetEncoding(1251)));

 req.ContentLength = SomeBytes.Length;

 newStream = req.GetRequestStream();

 newStream.Write(SomeBytes, 0, SomeBytes.Length);

 newStream.Close();

 // считываем результат работы

 result = req.GetResponse();

 ReceiveStream = result.GetResponseStream();

 Encoding encode = Encoding.GetEncoding(1251);

 sr = new StreamReader( ReceiveStream, encode );

 Char[] read = new Char[256];

 int count = sr.Read( read, 0, 256 );

 string strOut = "";

 while (count > 0)

 {

  String str = new String(read, 0, count);

  strOut += str;

  count = sr.Read(read, 0, 256);

 }

 Console.WriteLine("Результат работы запрошенного методом POST скрипта: " + strOut);

}

catch (Exception ex)

{

 Console.WriteLine("Ошибка: "+ex.Message);

}

finally

{

 if (newStream != null)

  newStream.Close();

 if (ReceiveStream != null)

  ReceiveStream.Close();

 if (sr != null)

  sr.Close();

 if (result != null)

  result.Close();

}

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.activex.net.ru/


Похожие работы:

  1. • Оптимизация приложений С++Builder в архитектуре ...
  2. • Этапы создания веб-приложения. Основы РНР и MySQL
  3. • Протокол HTTP 1.1
  4. • Разработка приложений архитектуры клиент-сервер при ...
  5. • Использование CGI при создании интерактивных интерфейсов
  6. • Использование CGI при создании интерактивных интерфейсов
  7. • Перенос Базы Данных на WEB-сервер
  8. • Создание приложений на AJAX
  9. • Создание динамических сайтов средствами Dreamweaver
  10. • Как написать AJAX-приложение
  11. • Введение в Microsoft .NET для начинающих
  12. • Технология AJAX
  13. • Разработка баз данных "Articles" средствами платформы ...
  14. • Технология проведения бизнес-процесса закупки
  15. • Настройка прокси-сервера Squid
  16. • Создание и использование сценариев World
  17. • Розробка програмного забезпечення системи збору даних ...
  18. • Моделирование надежности программного обеспечения
  19. • MIDAS и создание серверов приложений
Рефетека ру refoteka@gmail.com