Попробуйте, проверки правильности данных и т. Д. Пропущены, но вы их также проигнорировали: -):
public async Task<string> UploadRequestAsync(string url, string postdata)
{
string result = await Encoding.GetString(
new WebClient().UploadData(new Uri(uri), "POST", Encoding.UTF8.GetBytes(postdata)));
return result;
}
Вы как-то выполняете работу дважды, await
выполняя явно запущенную задачу.Мне было бы любопытно посмотреть, как выглядит сгенерированный код для этого ... И, конечно, в производственном коде используются подходящие классы из .NET 4.5.