web-dev-qa-db-fra.com

RestSharp obtient l'URL complète d'une demande

Existe-t-il un moyen d'obtenir l'URL complète d'une demande RestSharp, y compris ses paramètres de ressource et de chaîne de requête?

I.E pour cette demande:

RestClient client = new RestClient("http://www.some_domain.com");
RestRequest request = new RestRequest("some/resource", Method.GET);
request.AddParameter("some_param_name", "some_param_value", ParameterType.QueryString);

IRestResponse<ResponseData> response = client.Execute<ResponseData>(request);

Je souhaite obtenir l'URL complète de la demande:

http://www.some_domain.com/some/resource?some_param_name=some_param_value
18
Jaqen H'ghar

Pour obtenir l'URL complète, utilisez RestClient.BuildUri()

Plus précisément, dans cet exemple, utilisez client.BuildUri(request):

RestClient client = new RestClient("http://www.some_domain.com");
RestRequest request = new RestRequest("some/resource", Method.GET);
request.AddParameter("some_param_name", "some_param_value", ParameterType.QueryString);

IRestResponse<ResponseData> response = client.Execute<ResponseData>(request);

var fullUrl = client.BuildUri(request);
43
Jaqen H'ghar

Eh bien, c'est assez délicat. Pour obtenir l'URL complète demandée, utilisez RestClient.Execute(request).ResponseUri pour vous assurer qu'il s'agit bien de la demande déjà envoyée.

Dans cet exemple:

RestClient client = new RestClient("http://www.some_domain.com");
RestRequest request = new RestRequest("some/resource", Method.GET);
request.AddParameter("some_param_name", "some_param_value", ParameterType.QueryString);

IRestResponse<ResponseData> response = client.Execute<ResponseData>(request);
Uri fullUrl = response.ResponseUri;

Ce code:

Console.WriteLine(string.Format("response URI: {0}", response.ResponseUri.ToString()));

résultats:

response URI: http://www.some_domain.com/some/resource?some_param_name=some_param_value
0
Petr Krampl