RestSharp, Basic Auth - PullRequest
       8

RestSharp, Basic Auth

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

У меня есть вопрос о том, чтобы сделать авторизованный вызов GET Url с помощью RestSharp.

У меня есть базовый токен, который выглядит примерно так: dGVzdG5hbWU6dGVzdHBhc3N3b3Jk.

Допустим, URL-адрес GET: https://sometest.api.com/todos?id=1 и требует авторизации.

Как мне передать вышеуказанный токен в приведенном выше URL-адресе GET?

Я пробовал это:

var client = new RestClient("https://sometest.api.com") // base address
var request = new RestRequest("todos?id=1"); // resource
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Basic dGVzdG5hbWU6dGVzdHBhc3N3b3Jk");

var response = client.Execute(request);

Это не похоже на работу. Нужно ли вместо этого добавить основной токен в качестве параметра или в заголовке и в качестве параметра?

Или мне нужно использовать клиент. Аутентификатор на RestClient:

client.Authenticator = new HttpBasicAuthenticator("testname", "testpassword");

Любая помощь приветствуется, спасибо.

С наилучшими пожеланиями

1 Ответ

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

Не могли бы вы предоставить больше информации, как вы пришли к выводу, что она не работает? Любое исключение? Сообщение об ошибке вы можете предоставить?

Как ты получил этот токен? Какой срок действия токена?

Вот как я это делаю, как и вы, за исключением того, что я использую другой тип токена:

var request = CreateServerRequest(_configuration.SOME_URI);
request.AddHeader("Authorization", $"Bearer {Token}");
request.AddJsonBody(request);

var server = new RestClient(_configuration.SOME_ENDPOINT);
var serverResponse = server.Execute(request);
if (serverResponse.StatusCode == HttpStatusCode.OK)
{
     return new ServiceResponse<bool>(true);
}

Где метод CreateServerRequest содержит только:

return new RestRequest(uri)
{
   RequestFormat = DataFormat.Json,
   Method = Method.POST
};

Надеюсь, это поможет, Ура и счастливого кодирования.

...