2016-11-25 14 views
0

RestSharpを使用してプットリクエストを作成する方法を理解する際に問題があります。RestSharp PUTリクエストパラメータ

整数を渡してから、同じリクエストでJSON本体を渡す必要があります。私はPOSTにJSON広告requestBodyをテストしてみたし、それが正常に動作します

for (var i = 0; i < ReorderedTasks.Count; i++) { 
      var reorderedTasksJson = new JavaScriptSerializer().Serialize(ReorderedTasks[i]); 
      var request = new RestRequest("api/task/5/{ID}/", Method.PUT); 
      request.AddParameter("ID", ReorderedTasks[i].ID.ToString(), ParameterType.UrlSegment); 
      request.AddParameter("application/json; charset=utf-8", reorderedTasksJson, ParameterType.RequestBody); 
      client.Execute(request); 
     } 

これまでのところ、私はこれを持っています。私は私の問題が私がReorderedTasks[i].IDを渡そうとしている最初のパラメータであると思う、私はこれを正しく処理しているかどうかわからない。

私はクラスの初めにクライアントを初期化しました。

問題はDBは更新されていないため、問題を特定する必要があります。渡される必要のある2つのパラメータを扱う上で上記の方法が正しいですか?

+0

問題は? – Marty

+0

更新された質問をご覧ください。 – xeon48

答えて

1

ReorderedTasks [i] .ID.ToString()をURLパスに直接配置することをお勧めします。

var request = new RestRequest($"api/task/5/{ReorderedTasks[i].ID.ToString()}/", Method.PUT); 

http要求形式の問題を減らすのに役立ちます。

+0

私はこれを行うことができたとは気付かなかった。試して戻ってきます。 – xeon48

+0

ありがとう、これは働いた。 – xeon48

0

まあ、それはWEBAPIが期待しないものに依存し...

あなたは、ワイヤを介して送信されているものをとあなたも(http://www.telerik.com/fiddler

を取得しているものを応答検査するフィドラーを使用することができます - ここではいくつかのサンプルのです他のユーザーがRestSharpを使用する方法 How do I use PUT in RestSharp?

+0

APIは、長いJSson本体を想定しています。ありがとう、私はあなたの提案を見ていきます。 – xeon48

0

私はここに追加するので、誰かがそれから恩恵を受けるでしょう。

あなたのエンドポイントURLを使用すると、リクエストRestSharpのAddParameter(string, string)PUT方法では動作しません(それはGETでうまく動作しますかエンドポイントがURLパラメータを持っていない場合、それがあると一緒に渡したい?param=value&param2=valueのようなパラメータを持っている場合欺く)

を使用してPUTを正しく動作させる。