web-dev-qa-db-ja.com

RestSharpはリクエストの完全なURLを取得します

リソースとクエリ文字列パラメータを含むRestSharpリクエストの完全なURLを取得する方法はありますか?

このリクエストのI.E:

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

完全なリクエストURLを取得したい:

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

完全なURLを取得するには、RestClient.BuildUri()を使用します

具体的には、この例では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

まあ、それはかなりトリッキーです。要求された完全なURLを取得するには、RestClient.Execute(request).ResponseUriを使用して、送信済みの要求であることを確認します。

この例では:

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;

このコード:

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

戻り値:

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