WCF RESTful POST - PullRequest
       6

WCF RESTful POST

2 голосов
/ 22 декабря 2008

У меня есть служба 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://localhost:7002/SetGasPrice/For/ZipCode/45678/7.80

сообщение, которое я получаю:

EndPoint Not Found

Есть идеи как это исправить?


Я изменил его на

http://localhost:7002/SetGasPrice/For/ZipCode/54568/5.788

и

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

Это дает мне сообщение:

Метод не разрешен.

Есть идеи, как решить эту проблему?

Ответы [ 2 ]

5 голосов
/ 22 декабря 2008

Ваш URL должен быть:

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

Или вам нужно изменить шаблон на:

"/SetGasPrice/For/ZipCode/{zipCode}/{price}"
1 голос
/ 09 марта 2009

1001 * попробовать *

UriTemplate = "/SetGasPrice/For/ZipCode/{zipCode}/{dollars}.{cents}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...