Как собрать вытесняющую аутентификацию в команде curl при использовании метода POST

Мне нужно использовать метод POST для REST API. Он отлично работает в пользовательском интерфейсе SOAP, пока я выбираю «Упреждающую аутентификацию», мне нужно собрать эту опцию аутентификации в Curl.

В веб-службе не установлены свойства вытеснения. У него только базовая система аутентификации с именем пользователя и паролем.

Я пробовал --anyauth, это не работает. У меня есть команда ниже.

curl -X POST -H "content-type:application/json" --verbose -u username:password http://example.net:1234/api/Flows/UpdateStatus -d '{"EventId": "123","Status": "success"}' 

Я всегда получаю ошибку ниже.

{"Message":"Authorization has been denied for this request."}

person Rudraprasad Pradhan    schedule 01.08.2019    source источник
comment
Вытесняющая аутентификация - это не общий термин HTTP. Это вообще возвращает ответ 401? Если да, то какие заголовки содержат ответ? (и, пожалуйста, не используйте -X POST, если вы уже используете -d, что подразумевает POST!)   -  person Daniel Stenberg    schedule 01.08.2019
comment
Спасибо, Даниэль, заголовка нет, только базовая аутентификация с пользователем и паролем. Я попытался предоставить закодированное в base64 значение пользователя и пароля в разделе заголовка, это сработало для меня.   -  person Rudraprasad Pradhan    schedule 02.08.2019


Ответы (1)


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

curl -X POST -H "content-type:application/json" --verbose -H "Authorization: Basic Base64_encoded_value_of_user_&_password" http://example.net:1234/api/Flows/UpdateStatus -d '{"EventId": "123","Status": "success"}'
person Rudraprasad Pradhan    schedule 02.08.2019