2013-05-03 32 views
0

我需要創建一個Post WCF操作。我需要用戶傳入幾個參數。我看到的所有例子都假設用戶只會發送一個參數。我怎樣才能做到這一點?客戶端發送的網址會不會很長?WCF JSON Post操作

 [OperationContract] 
     [WebInvoke(Method = "POST", UriTemplate = "changeStatus/{ID}/{userID}/{activityDate}/{locationID}/{attachmentID}/{descriptionID}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 
     void ChangeStatus(Guid ID, Guid userID, DateTime activityDate, Guid locationID, Guid attachmentID = default(Guid), Guid descriptionID = default(Guid)); 
+1

將它包裝成一個POCO類,應該很容易。而且由於它的一個後期操作,你可以將你的URL作爲changeStatus,而不需要任何查詢字符串。 – Rajesh 2013-05-03 15:50:32

+0

如果我沒有在URITemplate中提供參數,用戶如何傳入POCO類? – Blade3 2013-05-03 18:05:16

+0

每個Http Post都有一個消息正文,您可以通過消息正文傳遞POCO對象。 – Rajesh 2013-05-07 12:15:49

回答

0

你可以設置你的ChangeStatus方法接收類型KeyValuePair的數組,然後你可以只遍歷數組,並得到您需要的值。當我需要發送多個或兩個參數時,這通常是我構建Web服務的方式。

如果客戶端正在執行POST來調用您的服務,那麼數據可以作爲對象傳遞,而不是在查詢字符串中傳遞,但是如果通過查詢字符串發送數據,則URL可能會變得很長。