Я пытаюсь отправить запрос 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», но это не сработало.
Этот запрос работает через Почтальона, и я не знаю, в чем дело.