2016-07-15 124 views
0

我使用C#與VS 2015,.NET 4.5.2和Web API 2
我想構建一個寧靜的web服務。C#webservice如何將多個參數發送到POST動作

我需要使用CURL或Fiddler來測試webservice(而不是AJAX或Jquery)。
如果可能,我寧願選擇CURL。

我成功地使用CURL發送GET請求到web服務。
但我還需要使用POST將數據發送到web服務

不幸的是我有使用POST的問題。

我不僅需要發送1個參數,還需要發送多個參數。
(基本上我需要發送整個記錄,將添加到數據庫)

看來,它是不可能發送多個參數到POST操作?
但不是發送多個參數,我應該能夠使用數組或List對象發送記錄數據?

我應該如何在web服務控制器中編寫POST動作?
我應該如何使用CURL(或fiddler)發送數據以便POST操作可以處理它?

我看到一些使用URI來POST數據的例子...但是使用URI似乎需要設置內容長度嗎?
如果可能,我會避免設置內容長度。


型號:
該模型表示應當使用POST要發送的數據:

public class Product 
{ 
public int  Id  { get; set; } 
public string Name  { get; set; } 
public string Category { get; set; } 
public decimal Price { get; set; } 
} 



客戶:
客戶端(CURL /提琴手)必須能夠發送模型數據,例如:

ID = 5
名稱= 「測試」
類別= 「硬件」
價格= 10

我如何發送使用curl(或提琴手)這個數據?


控制器動作:
我應該如何編寫這個動作?
這可以嗎?:

[HttpPost] 
public void AddProduct([FromBody] List<Product> data) 
{ 
Do something 
} 


webervice URL
只是爲了完整性:
我的web服務的URL看起來像這樣
http://myServer/api/product

回答

0

對於添加這樣那樣的事情。使包裝類然後將其發送到POST。

[HttpPost] 
public void AddProduct(List<Product> data) 
{ 
Do something 
} 

取而代之的是你可以做的是 - 使類

class Wrapper{ 
List<Product> data 
} 

然後用

[HttpPost] 
    public void AddProduct(Wrapper data) 
    { 
    Do something 
    } 

這將工作。如果沒有工作讓我知道,我會盡力爲您提供解決方案。對我而言,這在我遇到問題時起作用。

+0

感謝。 但客戶端(如CURL)如何發送適合包裝的數據? – Spacewalker

+0

我可以告訴你,通過郵遞員您可以在RAW模式和頭應用/ JSON作爲發送 { 數據:{ 數據:[{}] } } –

+0

或者捲曲問題 - 也許你可以給我一個想法什麼.NET類用於POST數據到Web服務.... – Spacewalker

相關問題