2017-02-15 2 views
1

J'utilise RestSharp pour publier des données dans une URL. Je surveille cette opération en utilisant un violoniste. quand j'utilise Simple .net HttpClient avec ce code:pourquoi RestSharp Request method Passer de 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(); 
} 

tout ce qui est bon et ce retour vrai résultat. mais lorsque je tente d'utiliser RestSharp avec ce code:

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); 

puis Fiddler me montrer la requête envoyée par la méthode GET au lieu de POST?

Je vérifie une autre fois mon Fiddler et a trouvé ce numéro:

Content-Type: PAR1

pourquoi cela se passe pour moi?

+0

C'était une erreur stupide. J'utilisais "http" au lieu de "https" et ce n'était pas géré dans l'hôte distant. :) –

Répondre

0

Changer votre argument ParameterType à GetOrPost et il travaillera

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

je fais cela mais aucun changement n'est arrivé et ma demande surveille comme GET –

0
  1. Initialiser Requête en POST avec JSON.

    var client = nouveau RestClient (PreUri);

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

  2. Ajouter objet dans le corps

    request.AddBody (obj);

  3. Execute

    var CancellationTokenSource = new CancellationTokenSource();

    var réponse = wait client.ExecuteTaskAsync (requête, cancellationTokenSource.Token);

+0

je dois envoyer des données au serveur dans l'application/format x-www-form-urlencoded –