2017-02-15 121 views
1

我正在使用RestSharp將一些數據發佈到網址。我正在使用fiddler來監視這個操作。當我使用簡單的.NET HttpClient的與此代碼:爲什麼RestSharp請求方法從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」的「https」insteade,而這不是在遠程主機中處理的。 :) –

回答

0

您的參數類型參數更改爲GetOrPost,也將努力

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

我這樣做,但沒有發生變化,我的請求監控爲GET –

0
  1. 初始化請求爲POST使用JSON。

    var client = new RestClient(PreUri);

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

  2. 添加對象在身體

    request.AddBody(OBJ);

  3. 執行

    變種cancellationTokenSource =新CancellationTokenSource();

    var response = await client.ExecuteTaskAsync(request,cancellationTokenSource.Token);

+0

我必須發送數據到服務器的應用程序/ x-www-form-urlencoded格式 –

相關問題