我是.net的新手,我正在寻找一种方法(如果存在)能够将请求对象传递给http客户端,而无需“手动”将其序列化为json。我在过去做了一些java实现,并且在那里完成了它,我认为它也应该可以在.netCore
这是请求对象:
public class Request
{
[JsonProperty("number", NullValueHandling = NullValueHandling.Ignore)]
public int Number { get; set; }
}
我正在寻找类似的东西:
var request = new Request {Number=2};
client.PostAsync("url", request)
我发现了类似的实现,但似乎并不是.netcore兼容: https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Client/5.2.4-preview1
.netcore有什么类似的东西吗?
谢谢
答案 0 :(得分:0)
您仍然需要将对象序列化为JSON字符串。
相关引用的Microsoft.AspNet.WebApi.Client
库将使用PostAsJsonAsync
扩展方法以及许多其他方法来扩展HttpClient
。
内部可能看起来像这样。
public static Task<HttpResponseMessage> PostAsJsonAsync<T>(this HttpClient client, string requestUri, T obj) {
var json = JsonConvert.SerializeObject(obj);
var content = new StringContent(json, Encoding.UTF8, "application/json");
return client.PostAsync(requestUri, content);
}
并使用
using System.Net.Http;
//...
var request = new Request { Number = 2 };
var response = await client.PostAsJsonAsync("url", request);