簡體   English   中英

如何在 http 請求中指定預期的響應內容類型?

[英]How to specify the expected response content-type in a http request?

我的客戶需要以 XML 格式表示的 .Net 數據集數據類型獲取他的數據。 目前我的 api 返回一個 Json 類型的列表。 我怎樣才能提出這樣的要求?

在客戶端(即 Asp.NET Web API)中:

var myHttpClient = new HttpClient();
myHttpClient.DefaultRequestHeaders.Add("Accept", "application/xml");
myHttpClient.DefaultRequestHeaders.Add("MyExpected-Content-Type", "Dataset");
var response = await myHttpClient.GetAsync(apiUrl);

在服務器中(即 Asp.NET Core Web API):

if (Request.Headers["MyExpected-Content-Type"] == "Dataset")
{
    DataSet ds = new DataSet();
    // ...
    return Ok(ds.GetXml());
}
else
{
    var lst = new List<Gifts>();
    // ...
    return Ok(lst);
}

這是你想要的嗎? 我發現這個解決方案返回 XML,這個答案用於將 model 轉換為 xml 字符串。

public IActionResult getHeader() {
            if (Request.Headers["MyExpected-Content-Type"] == "Dataset") {
                var user = new UserModel { age= 1, name="user1" };
                var writer = new StringWriter();
                var serializer = new XmlSerializer(typeof(UserModel));
                serializer.Serialize(writer, user);
                string xml = writer.ToString();
                return new ContentResult
                {
                    ContentType = "application/xml",
                    Content = xml,
                    StatusCode = 200
                };
            }
            else
            {
                var xml = "<result><value>hello</value></result>";
                return new ContentResult
                {
                    ContentType = "application/xml",
                    Content = xml,
                    StatusCode = 200
                };
            }
            
        }

這是我的測試結果:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM