2016-07-15 10 views
0

私はVS 2015、.NET 4.5.2、およびWeb API 2でC#を使用します。
私は安らかなWebサービスを構築したいと思います。C#webservice複数のパラメータをPOSTアクションに送信する方法

Webサービス(AJAXまたはJqueryではなく)をテストするには、CURLまたはFiddlerを使用する必要があります。
可能であれば、私はCURLを好むでしょう。

CURLを使用してGETリクエストをWebサービスに送信することに成功しました。
でも、POSTを使用してWebサービスにデータを送信する必要があります

残念ながら私はPOSTを使用する際に問題があります。

1つのパラメータだけでなく、複数のパラメータを送信する必要があります。
(基本的にデータベースに追加するレコード全体を送信する必要があります)

POSTアクションに複数のパラメータを送信することはできないようですか?
複数のパラメータを送信する代わりに、配列またはリストオブジェクトを使用してレコードデータを送信できるはずですか?

WebサービスコントローラでPOSTアクションをコーディングする方法はありますか?
CURL(またはフィドラー)を使用してデータを送信して、POSTアクションで処理できるようにする方法はありますか?

私は、URIをPOSTデータに使用したいくつかの例を見ましたが、URIを使用するにはコンテンツ長を設定する必要がありますか?
可能であれば、content-lengthを設定しないでください。


モデル:
クライアント(CURL /シオマネキ)でなければなりません:クライアントは

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




モデルはPOSTを使用して送信すべきデータを表し、モデルデータを送信することができます。例:

ID = 5
名= "テスト"
カテゴリー= "ハードウェア"
価格は10

にはどうすればCURL(またはシオマネキ)を使用してこのデータを送信することができますか=?


コントローラのアクション:
どのように私は、このアクションをコーディングする必要がありますか?
これは問題ありませんか?:

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


weberviceのURLだけ完全性について

私のWebサービスのURLは、ラッパークラス.Makeの事のような種類を追加するために、この
http://myServer/api/product

答えて

0

のように見えます それをPOSTに送信します。

あなたはクラス

class Wrapper{ 
List<Product> data 
} 

を行い、その後、これは動作します

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

を使用IS-何ができるか、これに代えて

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

。私はあなたに解決策を提供しようとします。私にとっては、これは私が問題を抱えていたときに働いた。

+0

ありがとうございます。 しかし、クライアント(CURLなど)はラッパーに適合するデータをどのように送信できますか? – Spacewalker

+0

私はあなたが { データ:{ データ:[{}] } }としてRAWモードで、ヘッダアプリケーション/ JSONでそれを送ることができるPOST MANを介しを伝えることができ –

+0

やカールが問題であるなら - 多分ことができます私には、.NETクラスがWebサービスにPOSTデータを送信するために使用するアイディアを教えてくれます。 – Spacewalker

関連する問題