WCF数据服务 - 自定义POST方法

时间:2014-01-15 19:10:17

标签: c# wcf web-services post wcf-data-services

我已经创建了一个WCF数据服务,它工作正常。我的GET类型方法的自定义方法也可以正常工作。问题出在POST自定义方法中。

该方法如下:

    [WebInvoke(Method = "POST")]
    public string CustomMethod(string myParameter)
    {
        return "yes" + myParameter;
    }

我也调用:

    config.SetServiceOperationAccessRule("CustomMethod", ServiceOperationRights.All);

然后在小提琴手中,我的请求看起来像那样:

    Method: POST
    URL: http://localhost:1219/DataService.svc/CustomMethod
    Reguest Headers:
    User-Agent: Fiddler
    Host: localhost:1219
    Content-Length: 27
    Content-Type: application/x-www-form-urlencoded
    Request Body:
    myParameter=parameter1value

调用该方法但“myParameter”参数始终为null。我错过了什么?

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

我相信你传递参数'myParameter'的方式可能是错误的。

您可以尝试使用visual studio来使用您的服务,然后尝试传递它。

还有一个问题.. 当您将服务称为获取服务时,Content-Type是

  

内容类型:应用/ X WWW的窗体-urlencoded

答案 1 :(得分:0)

请参阅Section 10.4.1.3. Invoking an Action了解OData 3。

短篇小说:内容类型必须是JSON。

  

如果调用请求包含任何非绑定参数值,则   Content-Type请求必须是'application / json',而且   参数值必须在。中的单个JSON对象中编码   请求正文。