Параметр отсутствует в теле запроса curl - PullRequest
0 голосов
/ 02 июля 2018

У меня возникла проблема при попытке отправить некоторые данные в API Sharepoint. Я смог сделать это в postman с использованием тел form/x-www-form, но в конечном итоге я пытаюсь использовать api / запросы внутри веб-приложения, используя среду под названием Xojo.

В любом случае, для этого я пытаюсь использовать curl и получаю ответ request body must contain the parameter 'grant_type', представляющий собой простую строку с именем типа. Мой запрос локона следующий. Почему не было обнаружено никаких данных от тела? Любая помощь с благодарностью, я не использовал curl много. Спасибо!

curl -H "Content-Type: application/json" -X POST                      \
  "https://accounts.accesscontrol.windows.net/tenant/tokens/OAuth/2?" \
  -d "{\"grant_type\":\"client_credentials\",                         \
       \"client_id\":\"client@0tenant\",                              \
       \"client_secret\":\"client_secret\",                           \
       \"resource\":\"resource-string\"}"

1 Ответ

0 голосов
/ 02 июля 2018

Я думаю, что ваш REST Api не поддерживает запросы json (проверьте эту страницу об Oauth2). Вам следует оформить следующий запрос:

curl -H "Content-Type: application/x-www-form-urlencoded" --request POST  \
  -d grant_type="client_credentials"                                      \
  -d client_id="client@0tenant"                                           \
  -d client_secret="client_secret"                                        \
  -d resource="resource-string"                                           \
  "https://accounts.accesscontrol.windows.net/tenant/tokens/OAuth/2?"

параметр -d должен использоваться для каждого ключа / значения в вашем запросе.

...