К моему удивлению, я не могу сделать что-то почти такое же простое, как это, насколько я могу судить, в .NET BCL:
byte[] response = Http.Post
(
url: "http://dork.com/service",
contentType: "application/x-www-form-urlencoded",
contentLength: 32,
content: "home=Cosby&favorite+flavor=flies"
);
Этот гипотетический код выше создает HTTP POST с данными и возвращает ответ от Post
метода статического класса Http
.
Поскольку мы остались без чего-то такого простого, каково следующее лучшее решение?
Как отправить HTTP-сообщение с данными и получить ответ?
Ответы:
Вам понадобится это включает в себя:
Если вы настаиваете на использовании статического метода / класса:
Тогда просто:
источник
string result = System.Text.Encoding.UTF8.GetString(response)
. Это вопрос, где я нашел ответ.Использование HttpClient: с разработкой приложений для Windows 8 я столкнулся с этим.
источник
.Result
сAsync
вызовами - используйте,await
чтобы гарантировать, что ваш поток пользовательского интерфейса не будет блокироваться. Кроме того, простойnew[]
будет работать так же, как список; Словарь может очистить код, но уменьшит некоторые функции HTTP.Используйте WebRequest . Из Скотта Хансельмана :
источник
источник
Лично я думаю, что самый простой подход к созданию http-сообщения и получению ответа - использовать класс WebClient. Этот класс хорошо абстрагирует детали. В документации MSDN есть даже полный пример кода.
http://msdn.microsoft.com/en-us/library/system.net.webclient(VS.80).aspx
В вашем случае вам нужен метод UploadData (). (Опять же, пример кода включен в документацию)
http://msdn.microsoft.com/en-us/library/tdbbwh0a(VS.80).aspx
UploadString (), вероятно, также будет работать и абстрагирует его от еще одного уровня.
http://msdn.microsoft.com/en-us/library/system.net.webclient.uploadstring(VS.80).aspx
источник
Я знаю, что это старая тема, но надеюсь, что это поможет кому-то.
источник
С учетом того, что другим ответам уже несколько лет, в настоящее время здесь приведены мои мысли, которые могут быть полезны:
Самый простой способ
Более практичный пример
Часто мы имеем дело с известными типами и JSON, поэтому вы можете расширить эту идею с помощью любого числа реализаций, таких как:
Пример того, как это можно назвать:
источник
Вы можете использовать что-то вроде этого псевдокода:
источник