簡體   English   中英

WCF RESTful服務不接受JSON輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM