Как настроить WCF Rest GET? - PullRequest
0 голосов
/ 27 июля 2011

Я использую шаблон REST WCF для тестирования REST Development.Я пытаюсь проверить метод POST, определенный следующим образом:

    [WebInvoke(UriTemplate = "", Method = "POST")]
    public SampleItem Create(SampleItem instance)
    {
        // TODO: Add the new instance of SampleItem to the collection
        return new SampleItem() { Id = 1, StringValue = "Hello Post" };
    }

Однако я не могу понять, как заставить его принять мой параметр SampleItem.Я использую fiddler для отправки POST-запроса на http://ipv4.fiddler:54916/service1 со следующим заголовком:

User-Agent: Fiddler
Host: ipv4.fiddler:54916

Я попробовал следующие два решения для тела запроса:

SampleItem.Id=1&SampleItem.StringValue=TestValue

AND

<SampleItem xmlns="http://schemas.datacontract.org/2004/07/PerTrac.Cloud.Service.Statistic">
  <Id>2147483647</Id>
  <StringValue>String content</StringValue>
</SampleItem>

Однако все, что я могу получить, - это ошибка 400.

SampleItem выглядит следующим образом:

    // TODO: Edit the SampleItem class
    [DataContract]
    public class SampleItem
    {
        [DataMember]
        public int Id { get; set; }

        [DataMember]
        public string StringValue { get; set; }
    }

Как передать SampleItem в службу, не получая ошибку 400 ???

1 Ответ

3 голосов
/ 27 июля 2011

Первый пример не будет работать (application / x-www-forms-urlencoded не поддерживается WCF "из коробки").Второй пример должен работать, если: 1) пространство имен класса SampleItem - PerTrac.Cloud.Service.Statistic;и 2) если вы добавите заголовок Content-Type к запросу (Content-Type: text / xml).

Если это не работает, попробуйте , включив трассировку на серверебоковая сторона.В трассировке будет информация о том, почему WCF отклонил запрос.

...