如果我实现基于REST的WCF服务,那么作为一个请求,我将使用我的http url说fr示例http://www.example.com/createuser/user1
现在,我需要发布到服务器的数据将作为HttpRequest对象的一部分,如果我使用post方法,这是正确的吗?
另外作为回复的一部分,我得到的只是JSON,这是我想要的响应或HttpResponse对象,它有json作为它的身体的一部分?
答案 0 :(得分:1)
首先,您的网址似乎仍然是RPC样式。方法名称在URL(createruser / user1)中嗅到。
相反,如果您的用户是资源,那么用户集合可能会显示如下 http://www.example.com/users (使用HTTP get)可以为您提供所有用户。
对于特定用户 使用HTTP get方法 http://www.example.com/Users/User_Id
如果你想创建一个特定的用户,那么 使用HTTP Post http://www.example.com/Users 。
现在,HTTP Post在表单集合中发送数据,因此创建用户的信息将作为表单数据发送。
至于respone,服务器可以向您发送多种形式的respone。客户端必须在接受标题中告诉他对于一个特定资源他想要什么样的表示(它可以在url中分类,也像twitter apis一样)。然后,服务器可以考虑客户端请求并在内容类型中为响应服务。除了JSON,XML和纯文本之外,还有其他媒体类型
对于您的HTTResponse对象,它取决于您使用何种技术进行requeset。如果您使用的是C#,那么您将获得一个HTTPResponse对象。如果Javascript那么你会得到响应,嵌入在XMLHttpRequest体内(通过responseXML或responseText)
修改强> 您可以将Rest StarterKit用于WCF,甚至可以使用WebAPI。 在WCF中,在声明操作合同时,您将使用以下属性
注释您的方法[OperationContract]
[WebInvoke(Method="GET", UriTemplate="/GetData",
ResponseFormat=WebMessageFormat.Json)]
string GetData();
它告诉了什么
Method =“GET”用于此资源的http方法
UriTemplate =用于将方法映射到URL。一个特定的URL需要调用一个特定的方法。
ResponseFormat =服务器以此格式返回响应。
上找到更多详细信息答案 1 :(得分:0)