Тест API с использованием RestSharp продолжает возвращать «Несанкционированный доступ, неверный ключ API» - PullRequest
0 голосов
/ 09 марта 2020

Я пытался выяснить это уже пару дней, и это включает просмотр похожих опубликованных вопросов, но я не могу заставить его работать.

Я пытаюсь опубликовать запрос на получение токена, который я могу затем использовать для дальнейших запросов API GET.

Отправляемый мной запрос:

    [TestMethod]
    public void GetToken()
    {
        var client = new RestClient(baseUrl);
        var request = new RestRequest(Method.POST);
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddParameter("Authorization", bearer, ParameterType.HttpHeader);
        request.AddParameter("username", username);
        request.AddParameter("password", password);
        request.AddParameter("api_key", apiKey);
        IRestResponse restResponse = client.Execute(request);

        Console.WriteLine("Status code: " + (int)restResponse.StatusCode);
        Console.WriteLine("Status message " + restResponse.Content);
    }

Когда я запускаю запрос, я получаю следующее : Код состояния: 200 Сообщение о состоянии {"content": null, "error": "Несанкционированный доступ, неверный ключ API", "success": false}

Не могу понять, почему я продолжаю получать недопустимый API Ключевое значение. С точки зрения всех переменных, которые я использую, когда я отправляю запрос в Postman, он прекрасно работает.

1 Ответ

0 голосов
/ 09 марта 2020

Хорошо, я взглянул на код с разработчиком и выяснил, что мне нужно передать свой apikey как часть значения AddParameter. Итак, мой окончательный код выглядел так:

    [TestMethod]
    public void GetToken()
    {

        var client = new RestClient(baseUrl);
        var request = new RestRequest(Method.POST);
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddParameter("Authorization", "Bearer " + apiKey, ParameterType.HttpHeader);
        request.AddParameter("username", username);
        request.AddParameter("password", password);
        IRestResponse restResponse = client.Execute(request);

        Console.WriteLine("Status code: " + (int)restResponse.StatusCode);
        Console.WriteLine("Status message: " + restResponse.Content);
    }
...