如何将JSON HTTP请求POST到WCF制作的RESTful API

问题描述:

我想让Android使用我自己制作的简单WCF web服务。这里是我的WCF服务的定义:如何将JSON HTTP请求POST到WCF制作的RESTful API

[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, 
    RequestFormat = WebMessageFormat.Json, 
    BodyStyle = WebMessageBodyStyle.Bare, 
    UriTemplate = "/UploadCallLog2")] 
    [OperationContract] 
    String UploadCallLog2(String number, String cached_name, String duration, String date, String line_number); 

我有两个问题:1。 ,应该怎么我的HTTP请求样子?添加请求标题时应该选择什么样的内容类型? 2.是否有正确的方式将输入参数作为JSON放在body中,并且webservice可以自动检测输入参数的值?

Fred

我建议在WCF服务上使用MVC项目。

控制器可以返回JsonResult,如果属性匹配,则MVC库包含Json帮助器方法,以将json对象序列化并反序列化为c#对象。

此外,它还允许从任何支持使用ContentType作为“application/json”的XmlHttpRequest的客户端调用基于MVC的服务。您也可以使用HttpGet或HttpPost,具体取决于您的请求类型和SSL下的数据安全性。您还可以利用身份验证模型来保护您的方法。

这只是一个非常干净的实现,没有任何复杂的服务器和客户端配置。有关类似方法的更多信息是MVC 4中的新Web API。