[英]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.