Не удается найти, как использовать HttpContent

Я пытаюсь использовать HttpContent:

HttpContent myContent = HttpContent.Create(SOME_JSON);

... но мне не повезло найти DLL, где он определен.

Сначала я попытался добавить ссылки на Microsoft.Http, а также System.Net, но ни один из них не указан в списке. Я также попытался добавить ссылку на System.Net.Http, но класс HttpContent недоступен.

Итак, может ли кто-нибудь сказать мне, где я могу найти класс HttpContent?

Ответ 1

Класс указан как присутствующий в сборке System.Net.Http. Обратите внимание, что этот класс является новым для .NET 4.5, поэтому вам нужно использовать эту версию BCL.

Ответ 2

Просто используйте...

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);

Ответ 3

Чтобы взять комментарий 6footunder и включить его в ответ, HttpContent является абстрактным, поэтому вам нужно использовать один из производных классов:

enter image description here

Ответ 4

Пока окончательная версия HttpContent и всего пространства имен System.Net.Http будет поставляться с .NET 4.5, вы можете использовать версию .NET 4, добавив Microsoft.Net.Http от NuGet

Ответ 6

Пространство имен System.Net.Http (где находится класс HttpContent) является новым для .Net 4.5, вы используете VS2012 RC?

В противном случае у вас не будет доступа к этому.

Ответ 7

Я уверен, что код не использует класс System.Net.Http.HttpContent, а вместо этого Microsoft.Http.HttpContent. Microsoft.Http был WCF REST Starter Kit, который никогда не делал предварительный просмотр перед тем, как быть помещенным в .NET Framework. Вы все еще можете найти его здесь: http://aspnet.codeplex.com/releases/view/24644

Я бы не рекомендовал использовать на нем новый код.