2011-11-10 46 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的值始終爲空。

我正在使用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(更改的類和屬性名使用Pascal大小寫):

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

您不需要在新的WCF WebAPI中添加DataContract和DataMember – keitn

0

UriTemplate只規定了systemCodeobjectID映射。您是否需要添加到模板以提取paramval的Name屬性的值?

+1

參數不在URL中發送,而是在POST主體中發送 – keitn

相關問題