[C#] HttpContent 사용 방법을 찾을 수 없습니다

사용하려고합니다 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추상적이므로 파생 클래스 중 하나를 사용해야합니다.

여기에 이미지 설명을 입력하십시오


답변

JSON Post의 경우 :

var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);

비 JSON :

var stringContent = new FormUrlEncodedContent(new[]
{
    new KeyValuePair<string, string>("field1", "value1"),
    new KeyValuePair<string, string>("field2", "value2"),
});
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);

https://blog.pedrofelix.org/2012/01/16/the-new-system-net-http-classes-message-content/


답변

HttpContent의 최종 버전과 전체 System.Net.Http 네임 스페이스는 .NET 4.5와 함께 제공되지만 NuGet에서 Microsoft.Net.Http 패키지를 추가하여 .NET 4 버전을 사용할 수 있습니다.


답변

코드가 System.Net.Http.HttpContent 클래스를 사용하지 않고 대신 Microsoft.Http.HttpContent를 사용하고 있다고 확신합니다. Microsoft.Http는 WCF REST 스타터 키트로 .NET Framework에 배치하기 전에 미리 보지 않았습니다. 여전히 여기에서 찾을 수 있습니다 : http://aspnet.codeplex.com/releases/view/24644

새로운 코드를 작성하는 것은 권장하지 않습니다.


답변

System.Net.Http네임 스페이스 ( HttpContent클래스가 상주)에 새로운 닷넷 4.5 , 당신은 VS2012 RC를 사용하고 있습니까?

그렇지 않으면, 당신은 이것에 액세스 할 수 없습니다.