none
如何调用带参数的WCF方法 RRS feed

  • 问题

  • [OperationContract(Name="sayHelloJson")]
            [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "sayHello", BodyStyle = WebMessageBodyStyle.Wrapped)]
            String sayHello();
            [OperationContract(Name = "SendMessageJson")]
            [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SendMessage/{Message}", BodyStyle = WebMessageBodyStyle.Wrapped)]
            String SendMessage(String Message);
    比如说第一个不带参数的:http://localhost:8000/Service/Json/sayHello
    那么第二个带参数的应该怎么调用?(比如说参数是"abc")
    我指的是在浏览器中或java的httpclient中,因为我准备在android上实现客户端,所以.net的调用方式就不必讲了。
    2011年11月29日 16:51

答案

  • [OperationContract(Name="sayHelloJson")]
            [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "sayHello", BodyStyle = WebMessageBodyStyle.Wrapped)]
            String sayHello();
            [OperationContract(Name = "SendMessageJson")]
            [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SendMessage/{Message}", BodyStyle = WebMessageBodyStyle.Wrapped)]
            String SendMessage(String Message);
    比如说第一个不带参数的:http://localhost:8000/Service/Json/sayHello
    那么第二个带参数的应该怎么调用?(比如说参数是"abc")
    我指的是在浏览器中或java的httpclient中,因为我准备在android上实现客户端,所以.net的调用方式就不必讲了。


    你URITemplate已经设置了。Get方式。

    我猜测一下调用的URL应该是:  网站URL/SendMessage/你好

    另外建议你使用REST WCF自带的一个帮助页面,里面会给出更精确的调用示例。

    另外 我之前讲的课程

      WCF与Ajax开发实践系列课程(7):构建Rest WCF 服务

    应该介绍了如何开发Rest WCF

    你可以参考


    Frank Xu Lei--谦卑若愚,好学若饥
    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2011年11月30日 1:25
    版主