Переписать HTTP запрос на C#
Формулировка задачи:
Нужно переписать HTTP запрос на C#
POST http://URL HTTP/1.1
Host: URL
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept: text/html, */*
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: URL
Content-Length: 86
Cookie: **********
Pragma: no-cache
Cache-Control: no-cache
signin[login]=******&signin[password]=*********&signin[remember]=on
Решение задачи: «Переписать HTTP запрос на C#»
textual
Листинг программы
class Program
{
private static bool SendPost(string url, string postData)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.AllowAutoRedirect = false;
httpWebRequest.Method = "POST";
httpWebRequest.UserAgent = "User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)";
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.ProtocolVersion = HttpVersion.Version10;
httpWebRequest.Referer = "http://www.voyna-plemyon.ru/";
var buffer = Encoding.ASCII.GetBytes(postData);
httpWebRequest.ContentLength = buffer.Length;
using (var writer = httpWebRequest.GetRequestStream())
{
writer.Write(buffer, 0, buffer.Length);
}
using (var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
var location = httpWebResponse.Headers.Get("Location") ?? "";
return location.IndexOf("server_id=ru1", StringComparison.InvariantCulture) != -1;
}
}
static void Main(string[] args)
{
var user = "";
var pwd = "";
var b = SendPost("http://www.voyna-plemyon.ru/index.php?action=login", string.Format("user={0}&clear=true&password={1}&server=ru1", user, pwd));
Console.WriteLine(b);
}
}