簡體   English   中英

ASP.Net WebAPI在不同的用戶代理中具有不同的內容類型

[英]ASP.Net WebAPI has different content type in different user agents

我正在嘗試學習ASP.Net WebAPI,並且很難弄清發生了什么。 我創建了一個包含以下操作的小型應用程序:

public IHttpActionResult Hello() 
{
    return Ok("Hi");
}

這個工作正常,所以我在瀏覽器中查看它。 我懂了:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Hi</string>

這是使用Chrome。 我使用擴展名來查看內容類型,它是text/xml 我想進一步檢查,所以我使用Postman REST Client進行測試。 在那里,我看到: "Hi" ,內容類型為application/json 我完全感到困惑。 我發現Postman只是在更改內容類型,但是要確保我安裝了另一個REST客戶端,但它返回了application/json 在Internet Explorer中,它嘗試將結果下載為JSON文件。 到底他媽發生了什么。 有沒有一種方法可以讓我擁有通用的內容類型?

Web api可以序列化對Xml或Json的響應。 它讀取Content-Type Http標頭以確定哪個。 使用提琴手檢查瀏覽器的請求。 郵遞員默認將application / json作為內容類型傳遞-這樣您會得到json響應。

您可以將以下代碼添加到WebApiConfig文件中,以刪除XML序列化器,它將始終返回json。

var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
    config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);

暫無
暫無

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

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