Ответ 1
Класс указан как присутствующий в сборке System.Net.Http
. Обратите внимание, что этот класс является новым для .NET 4.5, поэтому вам нужно использовать эту версию BCL.
Я пытаюсь использовать HttpContent
:
HttpContent myContent = HttpContent.Create(SOME_JSON);
... но мне не повезло найти DLL, где он определен.
Сначала я попытался добавить ссылки на Microsoft.Http
, а также System.Net
, но ни один из них не указан в списке. Я также попытался добавить ссылку на System.Net.Http
, но класс HttpContent
недоступен.
Итак, может ли кто-нибудь сказать мне, где я могу найти класс HttpContent
?
Класс указан как присутствующий в сборке System.Net.Http
. Обратите внимание, что этот класс является новым для .NET 4.5, поэтому вам нужно использовать эту версию BCL.
Просто используйте...
var stringContent = new StringContent(jObject.ToString());
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Или
var stringContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Чтобы взять комментарий 6footunder и включить его в ответ, HttpContent
является абстрактным, поэтому вам нужно использовать один из производных классов:
Пока окончательная версия HttpContent и всего пространства имен System.Net.Http будет поставляться с .NET 4.5, вы можете использовать версию .NET 4, добавив Microsoft.Net.Http от NuGet
Для сообщения JSON:
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
Non-JSON:
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("field1", "value1"),
new KeyValuePair<string, string>("field2", "value2"),
});
https://blog.pedrofelix.org/2012/01/16/the-new-system-net-http-classes-message-content/
Пространство имен System.Net.Http
(где находится класс HttpContent
) является новым для .Net 4.5, вы используете VS2012 RC?
В противном случае у вас не будет доступа к этому.
Я уверен, что код не использует класс System.Net.Http.HttpContent, а вместо этого Microsoft.Http.HttpContent. Microsoft.Http был WCF REST Starter Kit, который никогда не делал предварительный просмотр перед тем, как быть помещенным в .NET Framework. Вы все еще можете найти его здесь: http://aspnet.codeplex.com/releases/view/24644
Я бы не рекомендовал использовать на нем новый код.