[英]WCF RESTful service not accepting JSON input
就我而言,我有以下網絡服務,
[OperationContract]
[WebInvoke(UriTemplate = "services/CreatePerson", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, Method = "POST")]
string CreatePerson(string data);
它期望一個JSON輸入。 當我通過以下方式將JSON字符串作為Request主體傳遞給Fiddler測試此服務時,
"{"personName":"Joe", "source":"I", "address":"KK Road"}"
和請求標頭為
User-Agent: Fiddler
Content-Type: application/json;charset=utf-8
Host: localhost
Content-Length: 54
調試時未達到服務方法的斷點。
同時,它適用於以下JSON,如下所示(將雙引號替換為前一個json的單引號),
"{'personName':'102', 'source':'I', 'address':'KK Road'}"
該服務方法不接受JSON字符串輸入,因為如果我將輸入作為“測試”傳遞,它將很好地工作。
實際問題在哪里,請幫助我找出答案。
我認為您不應該使用首尾兩引號!
嘗試:
{'personName':'102', 'source':'I', 'address':'KK Road'}
另外,您的方法不應使用字符串參數,而應使用符合json的類。
public class M
{
public string personName { get; set; }
public string source { get; set; }
public string address { get; set; }
}
[OperationContract]
[WebInvoke(UriTemplate = "services/CreatePerson", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, Method = "POST")]
string CreatePerson(M data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.