您無法從GetJsonAsync<T>
獲取標題,因爲它返回Task<T>
而不是原始響應。您可以撥打GetAsync
,並在下一步反序列化的有效載荷:
HttpResponseMessage response = await url.GetAsync();
HttpResponseHeaders headers = response.Headers;
FooPayload payload = await response.ReadFromJsonAsync<FooPayload>();
ReadFromJsonAsync
是一種推廣方法:
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);
}
附:這就是爲什麼我更喜歡並推薦使用原始HttpClient
而不是像RestSharp或Flurl這樣的第三方高級客戶端。
你關心所有場景中的頭文件還是隻是錯誤響應,比如403s?如果是後者,Flurl有一個方便的try/catch模式,您可以在不放棄'GetJsonAsync'的情況下獲得響應頭。 –