簡體   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