如何在 C# 中的 httpclient 中设置响应 header?

How can I set response header in httpclient in C#?

我收到 text/html 格式的回复 format.How 我可以设置回复 header 以便我收到 application/json 格式的回复吗?

代码:

var httpRequestMessage = new HttpRequestMessage
            {
                Method = HttpMethod.Get,
                RequestUri = builder.Uri,
                Headers = {
                    { HttpResponseHeader.ContentType.ToString(), "application/json" },
                    { "Auth", "###################################################" }
                   
                }
                
            };

            var httpResponse = await _httpClient.SendAsync(httpRequestMessage);

你不知道。 Content-Type header

In responses, a Content-Type header tells the client what the content type of the returned content actually is.

服务器决定响应的内容类型,客户端使用它来进行相应的处理。您无法在请求中设置任何内容以立即执行此操作。

如果您正在处理响应创建,您可以创建一个自定义 header 来指示响应类型并让服务器端代码处理它,但通常不应该这样做。

您似乎在寻找 Accept header。尝试下一步:

var httpRequestMessage = new HttpRequestMessage
        {
            Method = HttpMethod.Get,
            RequestUri = builder.Uri,
            Headers = {
                { "Accept", "application/json"},
                { "Auth", "###################################################" }                   
            }                
        };

如@Athanasios 所述,您不能指定服务器返回的 Content-Type。但是,您可以尝试一件事:您可以告诉服务器您想要获得 JSON 格式的响应。

将 HTTP Header Accept 设置为 application/json

但是,最终返回什么内容还是要由服务器来决定