您无法从中获取标头,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);
}
PS 这就是为什么我更喜欢并建议使用 rawHttpClient
而不是任何第三方高级客户端,如 RestSharp 或 Flurl。