新しいHttpClient
オブジェクトを(新しいWeb APIの一部として)使用しているWeb上の多くの例で、HttpContent.ReadAsAsync<T>
メソッドがあるはずです。ただし、MSDNはこの方法について言及しておらず、IntelliSenseはそれを見つけていません。
それはどこに行きましたか、そしてどのようにそれを回避しますか?
新しいHttpClient
オブジェクトを(新しいWeb APIの一部として)使用しているWeb上の多くの例で、HttpContent.ReadAsAsync<T>
メソッドがあるはずです。ただし、MSDNはこの方法について言及しておらず、IntelliSenseはそれを見つけていません。
それはどこに行きましたか、そしてどのようにそれを回避しますか?
回答:
拡張メソッドのようです(System.Net.Http.Formatting内):
更新:
PM>インストールパッケージMicrosoft.AspNet.WebApi.Client
System.Net.Http.Formatting NuGetパッケージページによると、このSystem.Net.Http.Formatting
パッケージはレガシーであり、代わりMicrosoft.AspNet.WebApi.Client
にNuGetのこちらのパッケージで入手できます。
System.Net.Http.Formatting
は、nuget.org / packages / Microsoft.AspNet.WebApi.Clientパッケージに移動したようです。
HttpContent.ReadAsAsync<T>
がMicrosoft.AspNet.WebApi.Clientにないのは本当ですか?推奨される代替品は何ですか?
私は同じ問題を抱えているので、JSON文字列を取得してクラスに逆シリアル化するだけです。
HttpResponseMessage response = await client.GetAsync("Products");
//get data as Json string
string data = await response.Content.ReadAsStringAsync();
//use JavaScriptSerializer from System.Web.Script.Serialization
JavaScriptSerializer JSserializer = new JavaScriptSerializer();
//deserialize to your class
products = JSserializer.Deserialize<List<Product>>(data);
ReadAsAsync
か?
既に使用Newtonsoft.Json
していて、インストールしたくない場合Microsoft.AspNet.WebApi.Client
:
var myInstance = JsonConvert.DeserializeObject<MyClass>(
await response.Content.ReadAsStringAsync());
プロジェクトを右クリックしてNuGetパッケージの管理に移動し、Microsoft.AspNet.WebApi.Clientを検索してインストールすると、拡張メソッドにアクセスできます。