问题
Is there a way to get the full url of a RestSharp request including its resource and querystring parameters?
I.E for this 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);
I would like to get the full request URL:
http://www.some_domain.com/some/resource?some_param_name=some_param_value
回答1:
To get the full URL use RestClient.BuildUri()
Specifically, in this example use 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);
回答2:
Well, it is pretty tricky.
To get the full requested URL use RestClient.Execute(request).ResponseUri
to be sure it is the already sent request.
In this example:
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;
This code:
Console.WriteLine(string.Format("response URI: {0}", response.ResponseUri.ToString()));
returns:
response URI: http://www.some_domain.com/some/resource?some_param_name=some_param_value
来源:https://stackoverflow.com/questions/41416362/restsharp-get-full-url-of-a-request