[英]How to read header values with HttpClient in .net core
這是我正在使用的代碼
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", HttpContext.Session.GetString("JwtToken"));
var url = $"...some url";
var requestUri = new Uri(url);
var responseTask = client.GetAsync(requestUri);
responseTask.Wait();
var result = responseTask.Result;
if (result.IsSuccessStatusCode)
{
var reportResults = Task.Run(async() => await result.Content.ReadAsAsync<JArray>()).Result;
return reportResults;
}
}
在這里,如果我嘗試像這樣訪問標題
string error = responseTask.Headers.TryGetValue("X-TotalResults").FirstOrDefault();
我收到錯誤
Task<HttpResponseMessage> does not contain a
definition for Headers and no accessible extension method Headers
那么我如何閱讀標題..提前謝謝
您有一個Task<HttpResponseMessage>
而不是HttpResponseMessage
。
不要使用.Result
(由於許多原因很危險),而是將您的代碼轉換為正確使用async
。
static HttpClient client = new HttpClient();
private async JArray GetReportResults()
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", HttpContext.Session.GetString("JwtToken"));
var url = $"...some url";
using (var response = await client.GetAsync(url))
{
result.EnsureSuccessStatusCode()
var reportResults = await result.Content.ReadAsAsync<JArray>();
return reportResults;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.