2013-03-11 32 views
17

私は新しいASP.NET Web APIを理解しようとしています。asp.net Web APIへのデータの投稿

これまでのところ、私は、このメソッドシグネチャを作成し、それにうまく接続し、有効な応答を取得することができました...

[HttpPost] 
public HttpResponseMessage CreateAccount() 

私はシオマネキと、このメソッドにリクエストを送信することができていますし、要求を受信して​​いることを確認しました。

しかし、データを渡そうとすると、私は問題に遭遇しています。

私が試した最初の事は...

[HttpPost] 
public HttpResponseMessage CreateAccount([FromBody]string email, [FromBody]string password) 

だったと私は

電子メールを入力:シオマネキにおける要求の本体にABC

:XYZ、パスワードを。私がこれを行うと、私は500というエラーが出ます。

'リクエストのコンテンツに複数のパラメータ(' email 'と' password ')をバインドできません。

私もメソッドのシグネチャとしてこれを試してみました... UserAccountRequestDataは、単純なPOCO

public class UserAccountRequestData 
{ 
    public string Email { get; set; } 
    public string Password { get; set; } 
} 

であると私は

{メール

を置くと

[HttpPost] 
public HttpResponseMessage CreateAccount([FromBody]UserAccountRequestData data) 

:XYZ、パスワード:abc}

または

データ:{Email:xyz、Password:abc}

リクエストの本文に。どちらの場合も、POCOをポピュレートしようとすると、デバッグ中にメソッドに到達できますが、データオブジェクトは常にnullです。

強く型付けされたPOCOと、文字列やintのような複数のプリミティブ型を受け付けるAPIメソッドの両方を受け入れるAPIメソッドを作成する方法を理解する必要があります。あなたがapplication/jsonContent-Typeヘッダを設定し、有効なJSONを提供する必要が

おかげ

答えて

17

{"Email":"xyz","Password":"abc"} 
+2

+1ダレルミラーの答えです。また、[JSONオブジェクトからWeb APIへの送信](http://stackoverflow.com/questions/13870161/sending-json-object-to-web-api)の回答を参照することもできます。それはあなたの質問のサンプルコードを提供します。 –

関連する問題