それは、生の応答の代わりにTask<T>
を返すので、あなたはGetJsonAsync<T>
からヘッダを取得望めません。あなたはGetAsync
を呼び出して、次のステップであなたのペイロードをデシリアライズすることができます
public static async Task<TBody> ReadFromJsonAsync<TBody>(this HttpResponseMessage response)
{
if (response.Content == null) return default(TBody);
string content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<TBody>(content);
}
P.S.:
HttpResponseMessage response = await url.GetAsync();
HttpResponseHeaders headers = response.Headers;
FooPayload payload = await response.ReadFromJsonAsync<FooPayload>();
ReadFromJsonAsync
は、拡張子の方法であり、これはRestSharpやFlurlのようなサードパーティ製の高水準クライアントの代わりにraw HttpClient
を使用することを好み、推奨する理由です。
は、403sとして、あなたはすべてのシナリオまたは単にエラー応答のヘッダを気にしていますか?後者の場合、Flurlには 'GetJsonAsync'を放棄せずにレスポンスヘッダーを取得できる便利なtry/catchパターンがあります。 –