С моей windows 10 64-битной машины я пытался сделать вызов GET для openapi, я вижу, что он отлично работает с почтальоном. От почтальона, я взял фрагмент кода curl и попытался запустить из командной строки, он завершается с '{"error": "unauthorized", "description": "unauthorized request"}'
Я должен сделать 2 вызова API, первый звонок для получения токена носителя oauth и второй API для получения некоторых данных. Оба - публичные c API.
два наблюдения: 1. хотя первый API, который я пытаюсь использовать, это API Publi c, он хорошо работает, когда я нахожусь в VPN (сеть corp) через CURL. но с почтальоном это работает, даже когда я не в VPN.
второй вызов API работает с / без VPN с почтальоном, но не работает с CURL. Я попробовал те же шаги в другой машине windows VM - которая находится в другом центре обработки данных, обнаружил, что второй API работает нормально.
В чем разница? из окна инспектора почтальона я взял некоторые заголовки, которые не были показаны во фрагменте кода почтальона, и помещен как часть команды curl, но все же второй API завершается неудачно с curl.
Я пробовал стандартный curl, который присутствует в c: / windows / system32, а также загрузите curl-7.67.0-win64-mingw с портала, наблюдается такое же поведение.
Как это исправить? вот что почтальон показывает в фрагменте кода:
curl --location --request POST 'https://api.ariba.com/v2/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic Y2Q2NzRiMWMtNTZiMy00MzdjLWFmMWUtZmE2NDE3YzFlMTdiOjdMU2NSOFV4WG9id01XbkU4SEJBOElCY0ZkY1d5VGQx' \
--data-urlencode 'grant_type=openapi_2lo'
вот как я добавил дополнительные заголовки в команду curl:
C:/curl-7.67.0-win64-mingw/bin/curl -v -k -X --location --request GET "https://openapi.ariba.com/api/procurement-reporting-view/v2/prod/views/ViewForIRPABotForPOMassUpdate?realm=qarealm" --header "Content-Type: application/json" --header "Authorization: Bearer b73c8462-561c-464b-832e-b524b58c0d7c" --header "apikey: 6c7d9f5410ca4e4b8e651d73989e67de" --header "Host: api.ariba.com" --header "Connection: keep-alive" --header "Accept: */*" --header "User-Agent: PostmanRuntime/7.21.0"