2011-07-26 18 views
0

私はWCF RESTテンプレートを使用してREST開発をテストしています。私はそれが私のSampleItemパラメータを受け入れるように取得する方法を見つけ出すカントしかしセットアップ方法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" }; 
    } 

:私はこのように定義されたPOSTメソッドをテストしようとしています。

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> 

:私は要求のボディには、次の2つの解決策を試してみました

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

:私は、次のヘッダーとhttp://ipv4.fiddler:54916/service1にPOSTリクエストを提出するシオマネキを使用していますしかし、私が返すことができるのは400エラーです。

SampleItemは次のようになります。

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

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

は、どのように私は400エラーを取得せずにサービスにSampleItemを渡すことができます?

答えて

3

最初の例は機能しません(application/x-www-forms-urlencodedは、WCFの既定ではサポートされていません)。 2番目の例は、次の場合に有効です。1)SampleItemクラスの名前空間がPerTrac.Cloud.Service.Statisticである。 2)リクエストにContent-Typeヘッダーを追加した場合(Content-Type:text/xml)

動作しない場合は、サーバー側でenabling tracingを試してください。トレースには、WCFによって要求が拒否されている理由を示す情報があります。

+0

聖なる機関車バットマン!ありがとうございます !もし私ができるなら、私はあなたに余分なポイントを与えるだろう。 – BentOnCoding