2011-11-10 7 views
0

私はWCF WinAPIを使用して開発されたRest APIを持っています。.Net Rest APIメッセージの本文を取得する

public class paramval 
{ 
    string name; 
} 

[ServiceContract] 
public class myQuery 
{ 
    [WebInvoke(UriTemplate = "{systemCode}/{objectID}", Method = "POST")] 

    public myResult Get(string systemCode, int objectID, paramval pval) 
    { 
    } 

} 

pvalの値は常にnullです。

私はWCF Web APIテストクライアントツールを使用しています。

URL:  http://localhost:11556/api/contacts/abc/111 
Request: POST 
Headers: Accept:*/* 
      Content-Type:application/json 
      Content-Length:16 
Body  {"name":"Frank"} 

+0

pvalのタイプをJSonStringに変更すると、Jsonオブジェクトを受け取ることができます。私はより一般的な何かをしたいと思います。 – keitn

答えて

1

DataContractAttributeDataMemberAttributeであなたのクラスに注釈を付ける、および(パスカルケーシングを使用するように変更クラスとプロパティ名を)Nameためにパブリックプロパティを使用してみてください:

[DataContract] 
public class ParamVal 
{ 
    [DataMember(Name = "name")] 
    public string Name { get; set; } 
} 
+0

新しいWCF WebAPIでDataContractとDataMemberを追加する必要はありません – keitn

0

あなたUriTemplateのみsystemCodeobjectIDのマッピングを指定します。 Nameプロパティの値をparamvalにも抽出するために、テンプレートに追加する必要がありますか?

+1

URL内ではなくPOSTの本文にパラメータが送信されています – keitn

関連する問題