Как обработать необязательный параметр UrlSegment с RestSharp? - PullRequest
2 голосов
/ 21 марта 2019

Я использую RestSharp для своего приложения, и я создаю запрос, который использует параметр UrlSegment , как в следующем примере:

RestClient client = new RestClient("http://some-api-url/v1.9/");
RestRequest request = new RestRequest("someMethod/{id}");
request.AddParameter("id", 123, ParameterType.UrlSegment);
var response = client.Execute(request);

Допустим, параметр "{id}" теперь является необязательным : если вы вызываете запрос без него, ответом будет список вместо одного значения.

Как я могу повторно использовать тот же запрос для наличия или отсутствия параметра "id" без удаления строки "{id}" из URL (например: с помощью string.Replace () метод)?

Попытка добавить пустое значение для параметра не работает:

request.AddParameter("id", string.Empty, ParameterType.UrlSegment);
or
request.AddParameter("id", null, ParameterType.UrlSegment);

Заранее спасибо.

1 Ответ

0 голосов
/ 21 марта 2019

ноль не имеет значения, вы можете объявить пустую строку следующим образом:

string s = "";

Использование:

request.AddParameter("id", s, ParameterType.UrlSegment);

или

request.AddParameter("id", "", ParameterType.UrlSegment);

ОниРазные значения.«» - это пустая строка, и это то, что пустое текстовое поле содержит как текст все.NULL не имеет значения и не является пустым текстовым полем в виде текста.

Для обработки необязательных параметров вы можете передать их в параметрах метода, например

public IRestResponse Some_Method(string s = "")
{

    RestClient client = new RestClient("http://some-api-url/v1.9/");
    RestRequest request = new RestRequest("someMethod/{id}");
    request.AddParameter("id", s, ParameterType.UrlSegment);
    var response = client.Execute(request);
    return response;

}

Тогда вы будете вызывать его в зависимости от того, какое значение вы хотите передать

...
string s = "123";
Some_Method(s);

Это перезапишет параметр методов string s = "123";

Или оставит Some_Method() безпараметр будет использовать string s как пустое

...