dotnet 找不到 PostAsJsonAsync 方法
- 2019 年 10 月 8 日
- 筆記
在網路編程可以使用 PostAsJsonAsync 這個方便的方法將一個對象作為 json 推送到伺服器,這個方法是一個擴展方法,在之前的框架,可以在 System.Net.Http.dll 找到這個好用的擴展方法,但是在 4.5 的時候就被移除了。本文告訴大家如何安裝這個擴展方法
在新的版本,可以通過安裝 Microsoft.AspNet.WebApi.Client 這個庫使用,支援 .NETFramework 4.5 和 .NETStandard 2.0 另外不要看這個庫的命名空間包含了 AspNet 其實這個庫就是一些擴展方法,沒有引用任何 AspNet 程式碼
在使用的時候,需要引用 System.Net.Http
命名空間,然後就可以使用下面的程式碼
await httpClient.PostAsJsonAsync(url, obj);
其實自己寫一個擴展方法也是不錯,例如我就需要通過 Get 一個對象,可以這樣寫
using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; public static class HttpClientExtensions { public static async Task<T> GetObjectAsync<T>(this HttpClient httpClient, string url) { var str = await httpClient.GetStringAsync(url); return JsonConvert.DeserializeObject<T>(str); } }
通過自己定義擴展方法,可以讓網路編程的時候減少重複程式碼