Rest API отвечает 403 Запрещено из приложения, отлично работает при вызове из Почтальона - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь опубликовать в API отдыха, который использует OAuth 1.0 для аутентификации. Поставщики API предоставили мне токен и секретный ключ, используя ключ, с помощью которого я могу успешно создать заголовок OAuth, который работает с PostMan

Но проблема в том, что когда я пытаюсь использовать те же заголовки и тело, используя HttpClient, это бросает 403 Forbidden в меня.

Я убедился, что нет никаких расхождений в заголовках, теле или URL

Кажется, есть что-то экстра / меньше, что делает PostMan, который не может воссоздать в C#

private static async Task<string> SendRequest(string fullUrl, string oAuthHeader)
        {
            var json = GetJsonPayload();
            var sc = new StringContent(json, Encoding.UTF8, "application/json");
            sc.Headers.Add("ContentType", "application/json");

            using (var http = new HttpClient())
            {
                http.DefaultRequestHeaders.Add("Authorization", oAuthHeader);

                var httpResp = await http.PostAsync(fullUrl, sc);
                httpResp.EnsureSuccessStatusCode();

                var respBody = await httpResp.Content.ReadAsStringAsync();

                return respBody;
            }
        }

Здесь моя строка OAuth выглядит так -

OAuth realm="REALM", oauth_consumer_key="CONSUMERKEY", oauth_nonce="NFcdqA", oauth_signature_method="HMAC-SHA1", oauth_signature="GENERATEDSIGNATURE", oauth_timestamp="1555457636", oauth_token="TOKEN", oauth_version="1.0"

Я заметил, что в Postman, если на вкладке Authorization я выбираю Type as No Auth и устанавливаю ручной заголовок на Authorization с данной строкой OAuth, Postman также выбрасывает 403, но выбор типа авторизации на OAuth 1.0 работает, я не могу кажется, найти, почему это так и как установить Type в C #

Любая помощь / указатели будут высоко оценены.

1 Ответ

0 голосов
/ 17 апреля 2019

В Postman, под кнопкой «Отправить», нажмите кнопку «Код» - здесь есть генераторы кода для каждого языка - выберите C # и попробуйте, если не сгенерируйте скручивание, и убедитесь, что у вас есть каждый кусок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...