0

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

这是接口类:

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

我的服务端方法:

    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());

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

谢谢。

4

2 回答 2

0

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

public void TestMe(Stream dataStream)

但如果不是,请使用可序列化到 Json 对象作为参数。

于 2012-08-01T18:16:42.353 回答
0

我创建了一个很好的教程 ,帮助我使用流参数实现该方法。谢谢。

于 2012-08-02T16:12:56.403 回答