我有一个API,它实际上在内部调用另一个api,并传递回那些结果。
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", BearerToken);
HttpResponseMessage response = await httpClient.GetAsync(fullUrlPath);
if (response.IsSuccessStatusCode)
{
return Ok(await response.Content.ReadAsAsync<Sheet>());
}
return BadRequest();
它命中response.IsSuccessStatusCode
并进入ReadAsAsync
方法,但数据返回null。我在postman中测试了相同的内容并获得了数据。不确定是否是语法问题。数据对象是从postman响应中复制的。
1条答案
按热度按时间jbose2ul1#
我也遇到过类似的问题,
我发现这是由于NewtonSoft.Json未按预期工作造成的。反序列化时,它无法匹配正确的Json属性,这可能导致接收空内容。
如果遇到问题,可以先检查状态码,然后将输出打印为字符串,看是否有内容。
var res = await Response.Content.ReadAsStringAsync();
如果内容看起来正确,则可能是由于未成功去串行化引起的。
如果您正面临上述相同的问题,解决方法很简单:
用途:
using Newtonsoft.Json;
JsonProperty(PropertyName = "your_property")
(我忘记键入PropertyName =
,可能导致问题)或者只使用dotnet提供的
System.Text.Json.Serialization