【问题标题】:How can I set response header in httpclient in C#?如何在 C# 中的 httpclient 中设置响应标头?
【发布时间】:2021-02-22 12:22:34
【问题描述】:

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

【问题讨论】:

    标签: c# c#-4.0


    【解决方案1】:

    你没有。 Content-Type header

    在响应中,Content-Type 标头告诉客户端返回内容的实际内容类型是什么。

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

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

    【讨论】:

      【解决方案2】:

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

      将 HTTP 标头 Accept 设置为 application/json

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

      【讨论】:

        【解决方案3】:

        您似乎正在寻找Accept 标头。尝试下一个:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-11-09
          • 1970-01-01
          • 1970-01-01
          • 2012-06-19
          • 2021-07-06
          • 2019-11-12
          • 1970-01-01
          相关资源
          最近更新 更多