[英]call a wcf rest service and return data as xml or json
我正在嘗試從 WCF REST 服務獲取數據,以作為 xml 或 json 返回。
在使用 WebInvoke 屬性設置 RequestFormat 和 ResponseFormat 並將兩者設置為適當的格式時,我可以將數據作為 xml 或 json 返回:
但我不想對格式進行硬編碼,所以在網上進一步研究了它,我發現了一些東西,但無論我做什么,它似乎總是以 xml 格式返回我的數據。
這是我所做的:
從 WebInvoke 屬性中刪除了 RequestFormat 和 ResponseFormat。
[OperationContract] [WebInvoke( Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "Search/{searchName}/{fieldValues}")] Result Search(string searchName, string fieldValues);
我在 web.config 中添加了以下部分:
<system.serviceModel> <standardEndpoints> <webHttpEndpoint> <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/> </webHttpEndpoint> </standardEndpoints> </system.serviceModel>
我不知道是否需要上述內容,因為我能夠在沒有在我的 web.config 中使用這兩種格式的情況下進行格式化,但我想,它確實說的是 automaticaFormat
調用WebClient
,我將Content-Type
和Accept
標頭都設置為application/xml
或`application/json。
但即使在進行這些更改並將我的標頭設置為application/json
,它仍然以 XML 形式返回數據。
我在 Fiddler 中嘗試過,但同樣的事情。 收到請求,返回響應,但在 xml 中。
我也嘗試將以下代碼放入調用 WCF 方法中,但仍然不行:
WebOperationContext.Current.OutgoingResponse.ContentType = "application/json";
最后,我找到了這篇文章並按照我所知道的步驟進行了操作,但再次不行! 只需查找“消息格式選擇部分”。
我顯然錯過了一些東西,但是什么??? 有沒有人對如何實現這一目標有任何想法?
你所要求的是我今天實際實現的。 我需要創建一個 RESTful 服務來提供 JSON 或 XML 作為回報。 它是特定於域的,但如果您在兩行之間閱讀以下博客,則顯示了如何通過 MemoryStream 返回類型實現此目的:
http://www.j4jayant.com/articles/fhir/22-fhir-feel-2
在 GetResourceFeed 函數中,您可以看到如何使用請求中的 Accept 值在 JSON 和 XML(原子)之間切換。 請隨意嘗試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.