如何设置WCF Rest GET

本文关键字:WCF Rest GET 设置 何设置 | 更新日期: 2023-09-27 18:03:51

我正在使用WCF REST模板来测试REST开发。我试图测试一个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参数。我使用提琴提交POST请求http://ipv4.fiddler:54916/service1与以下标题:

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

我为请求体尝试了以下两种解决方案:

SampleItem.Id=1&SampleItem.StringValue=TestValue

<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错误?

如何设置WCF Rest GET

第一个示例不起作用(WCF开箱即用不支持application/x-www-forms-urlencoded)。第二个例子应该工作,如果:1)SampleItem类的命名空间是pertrace . cloud . service . statistic;2)如果你在请求中添加一个Content-Type报头(Content-Type: text/xml)

如果它不起作用,那么尝试在服务器端启用跟踪。跟踪将有一个信息,说明为什么请求被WCF拒绝。