【问题标题】:WCF JSON Post OperationWCF JSON 后期操作
【发布时间】:2013-05-03 15:25:50
【问题描述】:

我需要创建一个 Post WCF 操作。我需要用户传入几个参数。我看到的所有示例都假设用户只会发送一个参数。我怎样才能做到这一点?客户端发送的url不会很长吧?

        [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));

【问题讨论】:

  • 将它包装成一个 POCO 类,这应该很容易。而且由于它是一个发布操作,您可以将您的 URL 设置为 changeStatus 而无需任何查询字符串。
  • 如果我没有在 URITemplate 中提供参数,用户如何传入 POCO 类?
  • 每个Http Post都有一个消息体,可以通过消息体传递POCO对象。

标签: json wcf rest


【解决方案1】:

您可以设置您的 ChangeStatus 方法来接收类型为 KeyValuePair 的数组,然后您可以循环遍历该数组并获取您需要的值。当我需要发送一个或两个以上的参数时,这通常是我构建 Web 服务的方式。

如果客户端正在执行 POST 来调用您的服务,那么数据可以作为对象而不是在查询字符串中传递,但如果它是通过查询字符串发送的,那么是的,url 可能会变得很长。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2010-12-17
    相关资源
    最近更新 更多