2010-08-11 18 views
2

我有一個由幾乎50 ++字段組成的客戶表。如果它是可行的,如果我通過一個XML格式的文本通過這些,因爲他們有很多的參數,我只是在想在REST中傳遞參數?我可以只傳遞字符串還是允許xml?

樣品下面:

[OperationContract的] [WebInvoke(UriTemplate =「新/ customerxml/」方法= 「POST」,BodyStyle = WebMessageBodyStyle.Wrapped,ResponseFormat = WebMessageFormat.Xml)] 公衆的XmlElement NewCustomer(XmlElement的值)

我傳遞的XmlElement這樣?

+2

你正在查詢*數據(來自服務器)還是*發送*數據(到服務器)? – 2010-08-11 06:56:23

+0

發送數據到服務器 – Ravi 2010-08-13 00:36:08

回答

1

是的,您可以在調用REST Web服務時發送XML,但您必須使用POST方法而不是GET。

+0

我實際上使用POST方法:) – Ravi 2010-08-11 07:17:23

+0

然後你已經明白了。只需在客戶端中使用所需的所有參數構建xml字符串並將其發送到正確的服務器端點即可。 如果您正在使用某種實體將值存儲在服務器中,並且您需要一個如何構建字符串的示例,則可以在服務器中創建一個方法,而不使用返回此實體實例的輸入參數。在響應xml中,您將獲得您必須在客戶端中構建的示例。 – 2010-08-11 07:33:00

+0

謝謝,但我嘗試發佈使用XML,但目前似乎不可能 – Ravi 2010-08-17 07:17:43

0

是的,去吧!或者使用JSONYAML或TAB分隔的文本,或使用任何令您感興趣的內容。

+0

是的JSON可能是一個好主意,因爲它是可讀的......我嘗試找到如何從幾個參數中形成一個JSON對象,因爲我有從一個創建和提取數據..你有你朋友的樣本嗎? – Ravi 2010-08-11 07:18:39

+0

查看JavascriptSerializerClass和DataContractJsonSerializer [1] http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx [2] http://msdn.microsoft.com /en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx - HTH – Adam 2010-08-11 07:53:51

1

您傳遞數據的方式完全取決於您。如果你非常喜歡,你可以自由使用你自己的專有二進制格式。沒有多少客戶可能知道該怎麼做,但如果您使用自己的客戶代碼...

這將是一個很好的定義內容類型並使用它。對於不知道專有格式和應用程序/ foobar的客戶端,可能使用普通的application/xml作爲您自己特殊的'foobar'內容類型。