我很喜歡HttpClient的體系結構 - 但我無法弄清楚如何添加一個「不太標準」的媒體類型來處理XmlSerializer的。閱讀自定義內容類型(fe StackOverflow)飼料使用來自WebAPI的HttpClient
此代碼:
var cli = new HttpClient();
cli
.GetAsync("http://stackoverflow.com/feeds/tag?tagnames=delphi&sort=newest")
.ContinueWith(task =>
{
task.Result.Content.ReadAsAsync<Feed>();
});
時指出,有「文/ XML」的內容類型原子飼料工作正常,但一個在本例中失敗,並「否‘MediaTypeFormatter’可用使用媒體類型'application/atom + xml'「消息讀取類型爲'Feed'的對象。 我嘗試了爲XmlMediaTypeFormatter指定MediaRangeMappings(作爲參數傳遞給ReadAsAsync)但沒有成功的不同組合。
什麼是「推薦」的方式來配置HttpClient映射「application/atom + xml」和「application/rss + xml」到XmlSerializer?
請注意 - 如果原子提要具有「text/xml」或「application/xml」作爲Content-Type,則「將結果直接轉換爲提要」工作正常,在後臺使用XmlSerializer。所以這個問題必須有一個只使用配置/映射的解決方案。 – 2012-02-26 18:27:14
@SergeyAldoukhov所以如果內容類型是XML,它的工作原理?我很驚訝......他們必須將該名稱空間+根的翻譯硬編碼到Feed中,如果它真的很糟糕。 – Aliostad 2012-02-26 19:10:56