2017-02-15 14 views
1

私はRestSharpを使っていくつかのデータをURLに投稿しています。私はこの操作をフィドラーで監視しています。私はこのコードでシンプルな.NET のHttpClientを使用する場合:RestSharp RequestメソッドがPOSTからGETに変更される理由

using (var client = new HttpClient()) 
     { 
      var values = new Dictionary<string, string> { 
       { "par1", "1395/11/29" }, 
       { "par2", "2" }}; 
      var content = new FormUrlEncodedContent(values); 
      var response = await client.PostAsync("http://someurl.com/resource", content); 
      var responseString = await response.Content.ReadAsStringAsync(); 
} 

すべてのものが良いですが、これは本当の結果を返します。しかし、私はこのコードでRestSharpを使用しようとすると:その後、

RestSharp.RestRequest request = new RestSharp.RestRequest("/resource"); 
request.AddParameter("par1", val, RestSharp.ParameterType.RequestBody); 
request.AddParameter("par2", val, RestSharp.ParameterType.RequestBody); 
request.AddHeader("Origin", "http://someurl.com"); 
request.Method = RestSharp.Method.POST; 
RestSharp.RestClient client = new RestSharp.RestClient("http://someurl.com"); 
var response = client.Execute(request); 

はシオマネキが私GETメソッドの代わりにPOSTで送信された要求を示して?

私はシオマネキを別の時間をチェックして、この問題が見つかりました:

のContent-Type:PAR1これが私のために何が起こっている理由

を?

+0

これはばかげた間違いでした。私は "https"の "http" insteadeを使用していましたが、これはリモートホストでは処理されませんでした。 :) –

答えて

0
GetOrPost にあなたのParameterType引数を変更

、それはJSONとPOSTとしてリクエストを初期化

request.AddParameter("par1", val, RestSharp.ParameterType.GetOrPost); 
request.AddParameter("par2", val, RestSharp.ParameterType.GetOrPost); 
+0

私はこれを行うが、変更は起こらず、私の要求はGETとして監視する –

0
  1. を動作します。

    var client = new RestClient(PreUri);

    var request = new RestRequest(Uri、Method.POST){RequestFormat = DataFormat.Json};

  2. は本体

    request.AddBody(OBJ)にオブジェクトを追加します。

  3. するvar cancellationTokenSource =新しいCancellationTokenSourceを(実行)。

    var response = await client.ExecuteTaskAsync(request、cancelationTokenSource.Token);

+0

私はapplication/x-www-form-urlencoded形式のデータをサーバーに送信する必要があります –

関連する問題