РефератыИнформатика, программированиеОтОтправка запроса методом 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();


}

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:314
Символов:3287
Размер:6.42 Кб.