2015-01-13 52 views
0

我實現一個HttpWebRequest,並注意到Accept屬性的類型的string怎樣的.Net HttpClient的管理有多種介質類型

webRequest.Accept = "application/json"; 

HttpClient的實施,這是Accept類型的HttpHeaderValueCollection<MediaTypeWithQualityHeaderValue>

clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); 

這意味着您可以根據自己的需要儘可能多地選擇媒體類型Add

但根據this question,該標準僅允許您接受內容或媒體類型。

那麼,HttpClient如何能夠支持多種媒體類型呢?

回答

1

您鏈接的question正在談論的Content-Type標題回覆

您正在查看Accept標題請求

服務器決定哪個具體的內容類型(其可能與Accept標題中的任何一個匹配或不匹配)作出響應。這是一個過程,稱爲Content Negotiation

在服務器端如何工作的具體情況取決於所使用的服務器技術。這裏是它的工作原理介紹ASP.Net MVC Web API

+0

啊......感謝您的澄清!他們看起來非常相似,因爲你可以執行'request.ContentType =「application/json」;' – Barnstokkr