2012-06-18 92 views
0

如果我实现了一个基于REST WCF服务,然后作为一个请求我只会用我的HTTP URL说FR例如http://www.example.com/createuser/user1关于困惑基于REST WCF服务

现在,我需要发布到服务器会去的数据作为HttpRequest对象itslef的一部分,如果我使用post方法,这是否正确?

也作为响应的一部分我得到了什么,我只得到JSON,这是我想从响应或HttpResponse对象,其中有json作为它的身体的一部分?

回答

1

首先,你的URL仍然看起来像RPC风格。方法名称在URL中(createruser/user1)。

相反,如果你的用户的资源,那么用户的集合可以显示如下 http://www.example.com/users(使用HTTP GET),这会给你的所有用户。

对于perticular用户 http://www.example.com/Users/User_Id与HTTP GET方法

如果你想创建一个perticular用户,然后 HTTP:// WWW。 example.com/Users with HTTP Post。现在

,HTTP邮政形式收集发送数据,从而创建一个用户的信息将被发送的表单数据。

至于回复,服务器可以发送给你多种形式的答复。客户必须在接受的头文件中说明他想要一个特定资源的哪种表示形式(它可以通过url来识别,就像twitter apis一样)。服务器可以考虑客户端请求并服务于内容类型中的响应。还有其他媒体类型也比JSON,XML和纯文本

至于你HTTResponse对象等,这将取决于你使用什么样的技术,使一个requeset。如果你使用C#,那么你会得到一个HTTPResponse对象。如果使用Javascript,那么你会得到响应,嵌入式XMLHttpRequest的身体(通过responseXML的或responseText的)

编辑 你可以使用REST入门套件为WCF,甚至你可以使用的WebAPI内。 在WCF,而宣告你的承包经营合同,你会用下列属性

[OperationContract] 
[WebInvoke(Method="GET", UriTemplate="/GetData", 
      ResponseFormat=WebMessageFormat.Json)] 
string GetData(); 

这是什么告诉

方法来注解你的方法=“GET”用于此资源

UriTemplate = HTTP方法用于将该方法映射到URL。一个特定的URL需要一个适当的方法来调用。

ResponseFormat =服务器返回在这种格式的响应。

你可以找到更多的细节在herehere

+1

我的动机是只从服务器获取JSON,只是简单的json.I假设这是可能的,但怎么做?你能指点一下吗?BTW我很喜欢你的回答! – Charu

+0

谢谢,已添加编辑 – Anand

0

我不知道你将如何实现RESTful服务做的,但我会建议的WebAPI。 你可以看看这个example,显示了如何做到这一点,你可以看到客户端(网络浏览器)将显示响应的方式。

如果您的意思是说,作为客户端,您希望向服务发送请求,并且您想知道如何执行该操作,那么您有几个选项。

我猜你是使用.NET做这件事,所以我两个选择,你可以使用如下:

  1. 使用“WebClient”级,这将让你得到的回应字符串或字节数组。
  2. 使用HttpWebRequest和HttpWebResponse,然后你需要做更多的工作。
+0

我想使用WCF。 – Charu

+0

也看看答案的第二部分 – eyossi