当前位置:  开发笔记 > Android > 正文

WCF RESTful POST

如何解决《WCFRESTfulPOST》经验,为你挑选了1个好方法。

我声明了一个WCF RESTFul服务:

[ServiceContract]
public interface IGasPriceService
{
    [OperationContract]
    [WebGet
        (ResponseFormat = WebMessageFormat.Xml,
        BodyStyle = WebMessageBodyStyle.Bare,
        UriTemplate = "/GetGasPrice/For/ZipCode/{zipCode}"
        )]
    GasPriceData GetPriceData(string zipCode);

    [OperationContract]
    [WebGet
        (RequestFormat = WebMessageFormat.Xml,
        ResponseFormat = WebMessageFormat.Xml,
        BodyStyle = WebMessageBodyStyle.Bare,
        UriTemplate = "/GetGasPrice/For/City/{city}"
        )]
    GasPriceData GetPriceDataForCity(string city);

    [OperationContract]
    [WebInvoke
        (Method = "POST",
        RequestFormat = WebMessageFormat.Xml,
        UriTemplate = "/SetGasPrice/For/ZipCode/{zipCode}/Price/{price}"
        )]
    void SetPriceDataForZipCode(string zipCode, string price);
}

方法GetPriceData和GetPriceDataforCity工作,但SetPriceDataForZipCode不起作用.任何人都可以让我知道为什么这种无法发挥作用.

当我发出如下请求时:

HTTP://本地主机:7002/SetGasPrice /为/邮编/ 45678/7.80

我收到的消息是:

EndPoint Not Found

任何想法如何解决这一问题?


我改成了

HTTP://本地主机:7002/SetGasPrice /为/邮编/ 54568/5.788

    [OperationContract]
    [WebInvoke
        (Method = "POST",
        RequestFormat = WebMessageFormat.Xml,
        UriTemplate = "/SetGasPrice/For/ZipCode/{zipCode}/{price}"
        )]
    void SetPriceDataForZipCode(string zipCode, string price);

这给了我一个信息:

方法不允许.

任何想法如何解决这个问题?



1> tvanfosson..:

你的网址需要是:

 http://localhost:7002/SetGasPrice/For/ZipCode/45678/Price/7.80

或者您需要将模板更改为:

"/SetGasPrice/For/ZipCode/{zipCode}/{price}"

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有