繁体   English   中英

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

[英]How can I set response header in httpclient in C#?

我收到 text/html 格式的响应。如何设置响应 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);

你没有。 内容类型 header

作为响应,Content-Type header告诉客户端返回内容的实际内容类型是什么。

服务器决定响应的内容类型,客户端使用它进行相应的处理。 您可以在请求中设置开箱即用的任何内容。

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

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

设置 HTTP Header Accept to application/json

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

看来您正在寻找接受header。 接下来试试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM