2012-11-20 37 views
0

我有一個非常奇怪的情況(可能只適用於我)。我開發了一個RESTful API。默認情況下,它根據客戶端在頭文件中發送的內容類型將結果作爲JSON/XML/TEXT返回。在RESTful API中更改/附加請求標頭c#

現在客戶說他只想將響應設置爲默認值,而不是XML。我的意思是,客戶端不會在頭中發送任何內容類型,並且默認情況下會以XML的形式發送請求。

當我從瀏覽器訪問這個API時,它將它作爲XML返回,但是當客戶端的應用程序請求它時,默認返回JSON結果。他們通過將內容類型放在標頭中而將結果作爲XML獲得,但他們不想這樣做,並且希望默認具有XML結果。

我希望我清楚它。如果沒有,請讓我知道。

任何幫助,將不勝感激。謝謝

[更改] 我有興趣知道是否有某種方式可以在服務器上收到請求時修改請求標頭。

它是在MVC3中,C#。

回答

0

我找到答案並在此處發帖。我只是刪除了其他的返回類型,除了像下面的XML類型:

void ConfigureApi(HttpConfiguration config) 
{ 
    // Remove the JSON formatter 
    config.Formatters.Remove(config.Formatters.JsonFormatter); 

    // or 

    // Remove the XML formatter 
    config.Formatters.Remove(config.Formatters.XmlFormatter); 
} 

有關詳細信息,請按照下面的鏈接 http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization

感謝

0

您不能更改請求標頭,只是查詢它們。

我想你在控制器中返回你的結果作爲一個簡單的字符串,不是嗎?

而且,您根據您從請求中讀取的內容類型切換結果,不是嗎?

客戶電話的內容類型是什麼?

UPDATE:

看看這個頁面:

http://aleembawany.com/2009/03/27/aspnet-mvc-create-easy-rest-api-with-json-and-xml/

這是對以前版本的MVC的解決方案,但它會給你你需要的解決方案的想法:

根據請求內容類型調整行動結果

+0

亞歷嗨,不,我不queering他們根本。我只是返回對象。我不會根據請求標題來轉換它。我無法檢查哪些內容類型是這樣,爲什麼我在這裏提出問題,所以我可以知道我是否可以修改它們。 –

+0

看這個網頁: http://aleembawany.com/2009/03/27/aspnet-mvc-create-easy-rest-api-with-json-and-xml/ 這是以前的解決方案版本的MVC,但它會給你一個你需要的解決方案的想法: 根據請求調整行動結果contenttype –

+0

嗨亞歷克斯,感謝您的幫助。我想我找到了它,並且我將它寫爲答案,以便其他人可能會發現它很有用。 –