Dav*_*fer 257 .net c# asp.net-web-api httpcontent
我在Web上看到了大量使用新HttpClient对象(作为新Web API的一部分)的示例,应该有HttpContent.ReadAsAsync<T>方法.但是,MSDN没有提到这种方法,IntelliSense也没有找到它.
它去了哪里,我该如何解决它?
J..*_*... 393
看起来它是一个扩展方法(在System.Net.Http.Formatting中):
更新:
PM> install-package Microsoft.AspNet.WebApi.Client
根据System.Net.Http.Formatting NuGet包页面,该System.Net.Http.Formatting包现在是遗留的,可以Microsoft.AspNet.WebApi.Client在NuGet上的可用包中找到.
小智 65
我有同样的问题,所以我只是获取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);
Run Code Online (Sandbox Code Playgroud)
Mar*_*ndl 26
如果您已经在使用Newtonsoft.Json并且不想安装Microsoft.AspNet.WebApi.Client:
var myInstance = JsonConvert.DeserializeObject<MyClass>(
await response.Content.ReadAsStringAsync());
Run Code Online (Sandbox Code Playgroud)
您可以编写扩展方法:
public static async Task<Tout> ReadAsAsync<Tout>(this System.Net.Http.HttpContent content) {
return Newtonsoft.Json.JsonConvert.DeserializeObject<Tout>(await content.ReadAsStringAsync());
}
Run Code Online (Sandbox Code Playgroud)
2021 年更新:看起来该方法已在 .NET5 中删除。或者,您可以使用ReadFromJsonAsync<>()from System.Net.Http.Json.HttpContentJsonExtensions。它解决了目的。
| 归档时间: |
|
| 查看次数: |
147585 次 |
| 最近记录: |