Call swagger API в C # - PullRequest
       24

Call swagger API в C #

0 голосов
/ 06 сентября 2018

У меня есть API для получения данных, созданных в Swagger.У меня есть только базовый URL и имя пользователя, пароль и токен для этого.Когда я перехожу по URL-адресу, он переходит на страницу входа в систему и после входа в систему мы можем получить доступ к списку API-интерфейсов и получить от них данные.

Теперь мне нужно сделать это в C # с помощью restsharp.Так что я могу получить результат в JSON и обновить значения в БД.

Это мой код, который я использовал в C #

var restClient = new RestClient("https://v3.fusesport.com/api/events/")
        {
            Authenticator = new HttpBasicAuthenticator("xxxxx", "xxxxx")
        };
        var request = new RestRequest(Method.GET);
        request.AddHeader("cache-control", "no-cache");
        request.AddHeader("Token", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        request.AddHeader("content-type", "application/json");
        IRestResponse response = client.Execute(request);

Это ошибка при закрытии соединения.

Я попробовал API в приложении почтальона в chrome, он получает следующую ошибку:

{
    "detail": "Authentication credentials were not provided."
}

Это скриншот вызова почтальона с токеном Почтальон с токеном

Это скриншот звонка почтальона с базовой аутентификацией введите описание изображения здесь

Можете ли вы помочь мне, что я делаю неправильно.Я думаю, что API использует сеансовую аутентификацию.Заранее спасибо.

1 Ответ

0 голосов
/ 06 сентября 2018

Я думаю, что ваши заголовки неверны. Вместо

request.AddHeader("Token", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

попробуйте добавить

request.AddHeader("Authorization", "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b");
...