web-dev-qa-db-ja.com

HttpContentの使い方が見つからない

HttpContentを使用しようとしています。

HttpContent myContent = HttpContent.Create(SOME_JSON);

...しかし、DLLが定義されている場所を見つけるのに運がありません。

最初に、私はMicrosoft.HttpSystem.Netへの参照を追加しようとしました、しかし、どちらもリストにありません。私はまたSystem.Net.Httpへの参照を追加しようとしましたが、HttpContentクラスは利用できません。

それで、誰が私がHttpContentクラスを見つけることができる場所を私に言うことができますか?

153
user1416156

ただ使用してください...

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

6footunderのコメントを取り、それを答えに変えるには、HttpContentは抽象的なので、派生クラスの1つを使用する必要があります。

enter image description here

122
Chris S

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/

43
Felipe Deveza

HttpContentの最終バージョンとSystem.Net.Http名前空間全体が.NET 4.5に付属しますが、NuGetの Microsoft.Net.Http パッケージを追加することで.NET 4バージョンを使用できます。

6

私はコードがSystem.Net.Http.HttpContentクラスを使用していないことを確信しています、その代わりにMicrosoft.Http.HttpContentを使用してください。 Microsoft.HttpはWCF RESTスターターキットで、.NET Frameworkに配置されるまでプレビューされませんでした。あなたはまだここでそれを見つけることができます: http://aspnet.codeplex.com/releases/view/24644

私はそれに基づいて新しいコードを書くことをお勧めしません。

0
RasmusW

System.Net.Http名前空間(HttpContentクラスが存在する場所)は、。Net 4.5の新機能です。VS2012 RCを使用していますか?

そうでなければ、あなたはこれにアクセスできないでしょう。

0
EkoostikMartin