web-dev-qa-db-fra.com

Ajouter un paramètre d'obtention à A POST Demande avec RESTSHARP

Je veux faire un POST Demande à une URL comme celle-ci:

http://localhost/resource?auth_token=1234

Et je veux envoyer Json dans le corps. Mon code regarde quelque chose comme ça:

var client = new RestClient("http://localhost");
var request = new RestRequest("resource", Method.POST);
request.AddParameter("auth_token", "1234");    
request.AddBody(json);
var response = client.Execute(request);

Comment puis-je définir le auth_token Paramètre Pour être un paramètre d'obtention et apporter la demande en poste?

20
leninyee

Cela devrait fonctionner si vous 1) Ajouter le jeton à l'URL de la ressource et 2) Spécifiez le paramètreType.urlsegts comme celui-ci:

var client = new RestClient("http://localhost");
var request = new RestRequest("resource?auth_token={authToken}", Method.POST);
request.AddParameter("auth_token", "1234", ParameterType.UrlSegment);    
request.AddBody(json);
var response = client.Execute(request);

C'est loin d'être idéal - mais la façon la plus simple que j'ai trouvée ... espérant toujours trouver une meilleure façon.

24
Ender2050

La version actuelle de RESTSHARP a une méthode courte qui utilise un modèle:

var request = new RestRequest("resource?auth_token={token}", Method.POST);
request.AddUrlSegment("token", "1234");

Sinon, vous pouvez ajouter un paramètre sans modèle:

var request = new RestRequest("resource", Method.POST);
request.AddQueryParameter("auth_token", "1234); 

ou

var request = new RestRequest("resource", Method.POST);
request.AddParameter("auth_token", "1234", ParameterType.QueryString); 
37
Der_Meister