我们如何从现有的 WebAPI 创建 JSON 对象 [FromBody] 并将其 postasync 到另一个 API?

21 浏览
0 Comments

我们如何从现有的 WebAPI 创建 JSON 对象 [FromBody] 并将其 postasync 到另一个 API?

假设我有一个来自客户端的Employee对象,通过[FromBody]属性在Webapi中接收到它。

请问,如何将这个对象转换为Json,再发送到另一个webapi?从这个webapi返回的响应将是一个整数值。我会将它发送回客户端。

另外,我正在尝试将这个过程设置为异步的。

我已经尝试搜索了各种网站和帖子几个小时,但还是找不到解决方案。

非常感谢您的帮助 🙂 谢谢。

0
0 Comments

可以使用Newtonsoft.Json将对象转换为json字符串,然后使用httpClient调用外部Web API或使用HttpClientFactory。

首先,使用Newtonsoft.Json将对象转换为json字符串:

using Newtonsoft.Json;
var jsonString = JsonConvert.SerializeObject(emp);

然后,使用httpClient或HttpClientFactory调用外部Web API:

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("url");
    var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json");
    var result = await client.PostAsync("/endpoint", httpContent);
    string resultContent = await result.Content.ReadAsStringAsync();
}

以上是正确的方式,需要将json字符串作为HttpContent对象的第二个参数传递给PostAsync方法。

0