2011-07-26 78 views
0

我正在使用WCF REST模板來測試REST開發。我想測試這樣定義的POST方法:如何設置WCF Rest GET?

[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錯誤???

回答

3

第一個示例不起作用(應用程序/ x-www-forms-urlencoded不受WCF開箱即用的支持)。第二個示例應該在以下情況下工作:1)SampleItem類的名稱空間是PerTrac.Cloud.Service.Statistic; 2)如果你添加一個Content-Type頭到請求(Content-Type:text/xml)。

如果不起作用,請在服務器端嘗試enabling tracing。跟蹤將有一個信息說明爲什麼該請求被WCF拒絕。

+0

神聖的機車蝙蝠俠!謝謝你,先生 !如果可以的話,我會給你加分。 – BentOnCoding