簡體   English   中英

C# Postman返回數據時ReadAsAsync返回null

[英]C# ReadAsAsync returning null when Postman returns data

我有一個 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 中進行了相同的測試並獲得了數據。 不確定這是否是我缺少的語法。 數據 object 從 postman 響應中復制而來。

類似的問題發生在我身上一次,

我發現這是因為NewtonSoft.Json沒有按預期工作。 反序列化時,無法匹配到正確的 Json 屬性,這可能導致接收到 null 內容。

如果遇到問題,可以先查看狀態碼,將output打印成字符串看是否有內容,

var res = await Response.Content.ReadAsStringAsync();

如果內容看起來正確,則可能是由於脫軌不成功造成的。

如果您遇到與上述相同的問題,解決方案很簡單:

使用: System.Text.Json.Serialization; JsonPropertyName("your_property")

using System.Text.Json.Serialization;

namespace Project.Models;

public class TokenResponse
{
    [JsonPropertyName("access_token")]
    public string AccessToken { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM