2017-08-04 13 views
-1

私はPostman経由でlocalhostのテストページにPOSTリクエストを送信しようとしていますが、私は奇妙なエラーを受け取ります。私はこの例に続いPostmanでHTTP POSTを送信する正しい方法は何ですか?

、パート1 & 2: http://www.daniellewis.me.uk/2014/02/22/asp-net-web-api-from-scratch-part-2/

はポストマンでは、私は

http://localhost:57472/person 

要求がJSONであるにPOSTリクエストを送信しようとするが、これは私が送る私のオブジェクトであります:

[{"Id":"3","FirstName":"Homer","LastName":"Simpson"}] 

は私もこれを試してみました

public IHttpActionResult Post(Person person) 
    { 
     var nextId = people.Count + 1; 
     person.Id = nextId; 
     people.Add(person); 
     return CreatedAtRoute("Default", new { id = nextId }, person); 
    } 

エラー・メッセージ: それはどちらかである:

System.ArgumentOutOfRangeException: "Der Index lag außerhalb des Bereichs. Er 
darf nicht negativ und kleiner als die Auflistung sein." => "Index out of 
range - must not be negative or lower..." 

か:

System.NullReferenceException: "Der Objektverweis wurde nicht auf eine 
Objektinstanz festgelegt." 

私は何をやっている私はいつも、この関数でエラーが出る

[{"FirstName":"Homer","LastName":"Simpson"}] 

違う?この新しい人物をリストに追加する必要がありますが、機能しません。

EDIT: ソリューション: 私は誤って配列としてオブジェクトを送った...それは次のようになります。あなたの助けを

{"FirstName":"Homer","LastName":"Simpson"} 

ありがとう!

〜 S.B.

答えて

1

エンドポイントがPersonオブジェクトを以下のコードブロックに示すように想定していますが、あなたは[{"Id":"3","FirstName":"Homer","LastName":"Simpson"}]というJSON配列を渡しています。あなたは、単一のJSONオブジェクト他{"Id":"3","FirstName":"Homer","LastName":"Simpson"}直列化復元が失敗し、結合パラメータが動作しませんを渡す必要があり

public IHttpActionResult Put(Person person) 
{ 

**ミニノート:あなたのエンドポイントは、実際にPUT要求であるなぜあなたはPOSTを作っていますか?クライアントがPUTを理解できない場合を除き、PUTである必要があります

+0

ありがとうございます!私は今理解しています、これはリンクされたチュートリアルの中から明らかではありませんでした..知識の私の不足を許して;-) –

+0

@Sベルズ、それは大丈夫です...それは、 – Rahul

関連する問題