2016-10-24 2 views
0

Я следую за documentation на веб-странице Sonarqube для получения/настройки свойств. Я хотел бы установить свойство в проекте pi_core с именем свойства «appName» и значением «UCFE». В конечном итоге я хочу полностью автоматизировать это с помощью PowerShell, но пока я просто пытаюсь проверить принципы, используя curl, как и документы. Моя команда:Настройка пользовательских свойств проектов SonarQube

curl -u myID:myPassword -X POST http://myServer.ad1.prod:9000/api/properties?id=appName&value=UCFE&resource=pi_core 

Я проверил, что мой идентификатор и пароль работы, выполняя другие общие вызовы Web API, которые требуют разрешения администратора. Когда я пытаюсь запустить выше я получаю:

{"err_code":200,"err_msg":"property created"}'value' is not recognized as an internal or external command, operable program or batch file. 
'resource' is not recognized as an internal or external command, operable program or batch file. 

Любые идеи, почему эта команда, которая, мне кажется, быть идентичны документации для значений, за исключением, получает вышеуказанную ошибку?

ответ

1

Для начала закройте URI в кавычках;

curl -u myID:myPassword -X POST 'http://myServer.ad1.prod:9000/api/properties?id=appName&value=UCFE&resource=pi_core' 
  • The & для начала будет посылать 3 команды в фоновом режиме, если вы не заключите его и запустить что из оболочки

  • Документация по API так часто неполны, имеет ограниченное тестирование , сбрасывается вместе или даже непреднамеренно попадает в процесс экранирования при отображении в блогах.

При использовании curl в командной строке помните, что вначале shell интерпретирует команду.

Поэтому arg7 и Arg8 выше, были отправлены в cURL в качестве аргументов.Curl не имеют понятия, что «значение = UCFE» означает, следовательно, ошибка:

'value' is not recognized as an internal or external command

Когда вы кладете в кавычки блок текста который требуется отправить в один аргумент (скажем, URL для cURL), это выглядит следующим образом:


Sidenote - для завершения;

Он часто не имеет значения, является ли кавычки одинарные или двойные, но они являются разные.

  • чехол для одинарных кавычек: Некоторый API-интерфейсов, имеет $ знаки в них. Например, MYOB имеет множество параметров, например: В этом случае, если их много, может быть проще использовать одинарные кавычки:

    '?$filter=DateOccurred%20ge%20datetime%272016-07-25%2'
    . В этом случае, если их много, может быть проще использовать одинарные кавычки.

  • аргументы за двойные кавычки: Много переменных:

    "?id=$id&refresh=true&paramlist=$params&authredirect=$authlevel"

+0

Пришлось сделать немного тонкой настройки в URL на самом деле получить его установить свойство, но это сделал. Благодарю. –

+0

Отлично - вы должны опубликовать свое решение как отредактировать свой вопрос, я уверен, что в конечном итоге кто-то другой столкнется с той же проблемой с этим API. – hmedia1

Смежные вопросы