0
Я использовал следующий код для выполнения асинхронного HTTP-запроса на C#.Асинхронный HTTP POST в C# 4.0
private static Task GetUrl(string url)
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent =
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36";
request.Accept = "text/html";
return Task
.Factory
.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, url)
.ContinueWith(t =>
{
if (t.IsCompleted)
{
using (var stream = t.Result.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
//Console.WriteLine("-- Successfully downloaded {0} --", t.AsyncState);
//Console.WriteLine(reader.ReadToEnd());
}
}
}
else if (t.IsFaulted)
{
Console.WriteLine("There was an error downloading {0} - {1}", t.AsyncState, t.Exception);
}
});
}
Однако я не уверен, как изменить этот код для поддержки HTTP-сообщения. Любая помощь приветствуется!
В частности, я хотел бы знать, как я должен добавить BeginGetRequestStream и EndGetRequestStream в текущей функции ...
просто поиск «WebRequest POST », это довольно просто и [здесь] (http://msdn.microsoft.com/en-us/library/debx8sh9.aspx) ссылка ... это не имеет никакого отношения к остальной части вашего кода, вам просто нужно для настройки вашего «WebRequest» по-разному. –
См. Это: http://stackoverflow.com/questions/18513907/how-to-make-multiple-post-request-using-httpwebrequest-in-silverlight-4-and-net – Nostradamus