我的 ASP.NET Core 2.1 控制器中有一个端点
[HttpPost]
public async Task<bool> CheckStatus([FromBody] StatusModel model)
{
...code ommited
return true;
}
Run Code Online (Sandbox Code Playgroud)
我从代码中的其他地方调用这个端点,如下所示:
await client.PostAsync('/CheckStatus', payloayd)
Run Code Online (Sandbox Code Playgroud)
如何从此请求中检索 bool 值?
使用Newtonsoft.Json,您可以读取请求的响应并将其解析为布尔值。
using Newtonsoft.Json;
public async Task<bool> GetBooleanAsync()
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var data = new { };
var url = "my site url";
var payload = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");
var req = await client.PostAsync(url, payload);
var response = await req.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<bool>(response);
}
}
Run Code Online (Sandbox Code Playgroud)
更新
回顾几年前的情况,可以通过简单地将字符串数据解析为布尔值来简化,而无需使用 Newtonsoft.Json 来读取响应。
public async Task<bool> GetBooleanAsync()
{
var data = new { };
var url = "my site url";
var payload = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");
using var client = new HttpClient();
var response = await client.PostAsync(url, payload);
var data = await response.Content.ReadAsStringAsync();
return Boolean.Parse(data);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您的布尔值在 JSON 对象中返回,则可以使用 Newtonsoft.Json 读取该值。
| 归档时间: |
|
| 查看次数: |
7067 次 |
| 最近记录: |