2015-10-24 66 views
0

我試圖通過post方法從客戶端向服務器傳遞數據。web api(asp.net) - 通過post方法發送數據

我正在使用WebApi來這樣做。

此I I所使用的代碼:

客戶端:

var client = new RestClient(); 
client.EndPoint = @"http://localhost:57363/hello"; 
client.Method = HttpVerb.POST; 
client.PostData = "{value: Hello}"; 
var json = client.MakeRequest(); 
Console.WriteLine(json); 
Console.Read(); 

服務器:

// POST api/<controller> 
public string Post([FromBody]string value) 
{ 
    return value + ", world."; 
} 

服務器使用郵遞員當如預期響應。但是,客戶端傳遞一個空值而不是實際值。

我到底做錯了什麼?

+0

不知道這是實際的錯誤,但也許你好應該是'「你好」' – LiranBo

+0

順便說一句你確定請求正在到達服務器?導致幾乎沒有東西似乎在這裏破碎'@「http:// localhost:57363/hello」;'應該是@「http:// localhost:57363/Post」;'。你應該在Post操作之上使用'[HttpPost]'數據註釋。並且該值不是字符串。 – LiranBo

+0

謝謝Liran。其實我嘗試了幾個選項,包括「你好」,但沒有工作。有趣的是,使用「郵差」 - 它按預期工作,端點出現在代碼中。所以我假設服務器端寫入正確。 – Accadia

回答

0

首先,一個正確的json看起來像「{value:'Hello'}」。 我使用json-online來輕鬆驗證這種內聯json。另一方面,我認爲你應該在這種情況下發送值,而不是整個json(因爲你試圖解析一個簡單的類型,一個字符串),所以客戶端應該發送如下請求:

client.PostData = "'Hello'"; 
+0

謝謝bandreas。有效! – Accadia