Referat.me

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

Вид работы: статья

Рубрика: Информатика и программирование

Размер файла: 13.43 Kb

Скачать файл: referat.me-139015.docx

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

Отправка запроса методом 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();

}

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

  • Как подписывать с помощью ЭЦП электронные документы различных форм

    При создании и внедрении систем электронного документооборота неизбежно встает задача определения электронного документа и его подписи. Мы уже почти привыкли работать с электронной цифровой подписью (ЭЦП) для файлов.

  • Как написать AJAX-приложение

    Это два года назад AJAX был в диковинку (да и самого слова AJAX тогда ещё не выдумали). Теперь веб-приложения, страницы которых обновлялись на лету, в порядке вещей. Даже наоборот: без AJAX трудно представить себе некоторые сервисы.

  • Базовая Система Ввода Вывода (BIOS) (назначение, содержание) (. Тестирование оборудования при включении ПЭВМ, CMOS-память (WinWord 97))

    Автор : Попов С.А. Усинск, Коми, 1996 год Тема : Базовая Система Ввода Вывода(BIOS). Тестирование Оборудования при включении ПЭВМ, CMOS-память(назначение,содержание)

  • Агрегаты фактов

    Списки. Database. Приемы работы с динамической базой фактов. Структуры.

  • Считаем время выполнения скрипта

    Вы наверняка замечали на некоторых сайтах внизу страницы надпись, что мол скрипт выполнен или страница создана за столько-то секунд. И сейчас мы сделаем это средствами PHP.

  • Технология AJAX

    Ajax - технология разработки Web-приложений c использованием кода на машине клиента для изменения данных на Web-сервере. Обновление Web-страницы без перезагрузки, прерывающей обмен данными. Методы и свойства объекта XMLHTTPRequest. Поле Select с поиском.

  • Аутентификация пользователей

    Трансляция полей формы. Метод аутентификации в Web как требование к посетителям предоставить имя пользователя и пароль. Форма для передачи данных. Использование базу данных для хранения паролей. Разработка сценарий для аутентификации посетителей.

  • XMLHttpRequest (AJAX)

    Объект XMLHttpRequest (AJAX): отправка и обработка ответов HTTP-запросов с помощью JavaScript. Методы и свойства объекта, общие для Internet Explorer 5, Mozilla, Netscape 7. Алгоритм выполнения, JavaScript-код. PHP-скрипт получения данных из базы.

  • Языки серверных скриптов

    В последнее время Web-узлы перестают быть просто набором страниц и картинок. Все чаще создаются узлы, которые взаимодействуют с посетителем, выполняют какие-то действия, собирают данные, ведут подсчеты, самонастраиваются под предпочтения посетителя.

  • Использование CGI при создании интерактивных интерфейсов

    WWW (World Wide Web) и средства интерактивного взаимодействия. Спецификация CGI. Последовательность действий для обработки входных данных cgi-модуля для разных методов запроса GET и POST.