C# REST服务接收空参数

C# REST服务接收空参数,c#,wcf,web-services,c#-4.0,rest,C#,Wcf,Web Services,C# 4.0,Rest,我试图与我的rest服务通信,但这一个总是返回我的sended参数为空,但在我的客户端控制台中,他已被填充 以下是接口类: [ServiceContract] public interface IMyTest { [OperationContract] [WebInvoke(UriTemplate = "TestMe", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessa

我试图与我的rest服务通信,但这一个总是返回我的sended参数为空,但在我的客户端控制台中,他已被填充

以下是接口类:

[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());
我的客户端代码不正常吗?我的外形不好


谢谢。

如果希望以字符串形式获取请求,请使用流而不是字符串参数

public void TestMe(Stream dataStream)

如果没有,请使用serializable to Json对象作为参数。

我发现了一个很好的方法,它帮助我用stream参数实现了这个方法。谢谢。

您也要传递内容长度标题吗?我也测试了传递内容长度,但没有任何更改。我测试了将字符串更改为流,但现在我得到了错误请求的响应400。