我的客户端代码调用 API,并且尝试从响应标头获取返回的 ETag 值。如果我使用 Fiddler,我可以看到响应包含 ETag 标头,如果我使用 Postman 进行 API 调用,我可以看到 ETag 标头,但无论我采取什么方法尝试检索代码中的标头,我返回的都是无效的。
API 调用本质上是:
// create request object
var request = new HttpRequestMessage(HttpMethod.Get, url);
// add authorization header
request.Headers.Authorization = new AuthenticationHeaderValue("bearer", await GetBearerToken());
// send request
HttpResponseMessage response = await _client.SendAsync(request);
Run Code Online (Sandbox Code Playgroud)
邮递员的回应是;
我花了几个小时搜索并尝试网络上的示例,但无论我尝试什么,我都无法获取 ETag 标头。
使用下面的示例代码,我确实获得了返回的 Postman 响应标头中所示的前 2 个标头,但没有获得 ETag 标头/值。
String allResponseHeaders = Enumerable
.Empty<(String name, String value)>()
.Concat(
response.Headers
.SelectMany(kvp => kvp.Value
.Select(v => (name: kvp.Key, value: v))
)) …Run Code Online (Sandbox Code Playgroud)