Запрос к web-странице из C# кода

2

Как выполнить GET- или POST-запрос из C# кода?

Лучший ответ:

3

Пример POST запроса:

var request = (HttpWebRequest) HttpWebRequest.Create("http://url");
request.Method = "POST";
const string command = @"Текст POST запроса";
byte[] bytes = Encoding.ASCII.GetBytes(command);
request.ContentLength = bytes.Length;
using (var stream = request.GetRequestStream())
{
    stream.Write(bytes, 0, bytes.Length);
}
using(var stream = new StreamReader(request.GetResponse().GetResponseStream()))
{
    Console.WriteLine(stream.ReadToEnd());
}

Новые ответы


2

Нужно использовать статические методы класса WebRequest:

var request = WebRequest.Create("host");
var stream = request.GetResponse().GetResponseStream();
var content = new StreamReader(stream).ReadToEnd();

Console.WriteLine(content);
Console.ReadLine();

Можно использовать прокси:

WebProxy proxy = new WebProxy("proxy",80);
proxy.BypassProxyOnLocal = true;
request.Proxy = proxy;

Если сервер возвращает в качестве кодов состояния 301 или 302 (или любой другой код перенаправления 30x), то автоматически будет произведен запрос на адрес перенаправления. Если такое поведение не является желательным, нужно установить в false свойство AllowAutoRedirect объекта HttpWebRequest. При этом придется сделать явное преобразование объекта, возвращаемого методом WebRequest.Create, к классу HttpWebRequest:

var request = (HttpWebRequest) WebRequest.Create("host");
request.AllowAutoRedirect = false;

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.