Есть ли возможность отправить сообщение с телом, используя OAuth 1.0? - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь отправить запрос POST с телом в WordPress API. Я все еще получаю ошибку 401.

Я решил использовать: https://gist.github.com/DeskSupport/2951522 для авторизации через OAuth 1.0, и он отлично работает с методом GET. Затем я хотел реализовать другой метод, который отправляет простое тело.

Это мой код:

            var oauth = new OAuth.Manager();
            oauth["consumer_key"] = _consumerKey;
            oauth["consumer_secret"] = _consumerSecret;
            oauth["token"] = _accessToken;
            oauth["token_secret"] = _tokenSecret;


            var appUrl = _baseUrl + url;
            var authzHeader = oauth.GenerateAuthzHeader(appUrl, "POST");

            string body = GenerateBody(parameters);
            byte[] encodedData = Encoding.ASCII.GetBytes(body);

            var request = (HttpWebRequest)WebRequest.Create(appUrl);
            request.Method = "POST";
            request.PreAuthenticate = true;
            request.AllowWriteStreamBuffering = true;
            request.Headers.Add("Authorization", authzHeader);
            request.ContentLength = encodedData.Length;
            request.ContentType = "application/x-www-form-urlencoded";

            Stream newStream = request.GetRequestStream();
            newStream.Write(encodedData, 0, encodedData.Length);

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {

                }
            }

Результат метода GenerateBody равен user_login=login&user_pass=BXE&04K44DoR1*a

Я также пытался изменить символ «&» на «% 26», но это не сработало.

Этот запрос работает через Почтальона, и я не знаю, в чем дело.

1 Ответ

0 голосов
/ 08 июля 2019

ОК, я нашел решение.

https://blog.dantup.com/2016/07/simplest-csharp-code-to-post-a-tweet-using-oauth/

Этот парень написал способ сделать этот запрос. Что также важно, вы должны изменить oauth_nonce для уникального токена.

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