REST服务接收空参数

时间:2012-08-01 16:11:43

标签: c# wcf web-services c#-4.0 rest

我正在尝试与我的休息服务通信,但这一次总是返回我的已发送参数为空但在我的客户端控制台中他已被填满。

这是接口类:

[ServiceContract]
    public interface IMyTest
    {
        [OperationContract]
        [WebInvoke(UriTemplate = "TestMe", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped)]
        string TestMe(string parameter);        
    }

我的svc方法:

    public string TestMe(string parameter)
            {
            if (string.IsNullOrEmpty(parameter)
                return "Empty";
            return "OK";
            }

我的客户:

string content = "{\"Param\" : \"TEST\"}";
var request = WebRequest.Create("http://localhost/MyTestURL/MyTest.svc/TestMe");
                request.Method = "POST";
                request.ContentType = "application/json";
                using (var writer = new StreamWriter(request.GetRequestStream()))
                {
                    writer.Write(content);
                }

                var res = (WebResponse)request.GetResponse();

                StreamReader reader =
                  new StreamReader(res.GetResponseStream(), Encoding.UTF8);
                System.Console.WriteLine("Response");
                System.Console.WriteLine(reader.ReadToEnd().ToString());

我的客户端代码不正常吗?我的配置不行吗? ...

感谢。

2 个答案:

答案 0 :(得分:0)

如果要将请求作为字符串获取,请使用Stream而不是String参数

public void TestMe(Stream dataStream)

但如果没有,请将serializable作为参数用于Json对象。

答案 1 :(得分:0)

我创建了一个很好的tutorial,帮助我使用stream参数实现该方法。感谢。