ASP.NET Core WebApi如何返回XML數(shù)據(jù)格式
一、提出問題
ASP.NET Core WebAPI返回XML數(shù)據(jù)格式,還需要你阿笨你來進行給大家講解?這個我們大家都了解和清楚,那么問題是真的這樣子?不就是在設(shè)置一下Accept為application/xml就可以了嗎?
這里以ASP.NET Core默認(rèn)API項目中的WeatherForecastController示例進行講解,經(jīng)過實驗發(fā)現(xiàn)測試結(jié)果并沒有我們預(yù)期的那樣,下圖依舊返回的是JSON格式。

二、分析問題
Asp.net core 在做webapi項目的時候,默認(rèn)是只返回json格式的數(shù)據(jù)的,如果想要開啟xml數(shù)據(jù)返回,需要在startup里配置如下:

這樣就可以通過head的accept來控制請求需要返回的數(shù)據(jù)格式了。

如果不想每次請求的時候都設(shè)置accept為application/xml參數(shù)的話,我們這里可以指定的控制器上加入特性 [Produces("application/xml")]即可。


你以為這樣就完了嗎?細心的你可能已經(jīng)發(fā)現(xiàn)轉(zhuǎn)換為xml格式化的時候可能會遇到奇葩的問題,xml格式中會平白無故的多出很多出xmlns:xsi命名空間,那么如何移除xml格式里的命名空間呢?
網(wǎng)上文章說產(chǎn)生這個問題的原因是因為構(gòu)造返回結(jié)果的多個對象不在同一個命名空間下面,只需要將其放在同一個命名空間即可解決這個問題。 那么問題真的是這樣解決的嗎?
三、解決問題
自定義XmlSerializerOutputFormatter類,來移除XML序列化中的命名空間。

四、源代碼下載
非常感謝對【跟著阿笨一起玩NET】的支持,有問題微信公眾號回復(fù)wx關(guān)鍵字,加阿笨的個人微信號。
《ASP.NET Core WebApi如何返回XML數(shù)據(jù)格式》源代碼下載關(guān)注公眾號,回復(fù)關(guān)鍵字:ch3e

騰訊課堂
網(wǎng)易云課堂
不信的話,掃一掃
