在SonarQube项目上设置自定义属性

时间:2016-10-24 12:16:50

标签: api curl web sonarqube sonarqube-web

我正在关注Sonarqube web api上的documentation获取/设置属性。我想在项目pi_core上设置属性名称为“appName”和值为“UCFE”的属性。最终我想通过PowerShell完全自动化这个,但是现在我只是尝试使用curl验证概念,就像文档一样。我的命令是:

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

我已经通过执行需要管理员授权的其他通用网络API调用验证了我的ID和密码。当我尝试运行以上内容时,我得到:

{"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 个答案:

答案 0 :(得分:1)

首先,用引号关闭URI;

curl -u myID:myPassword -X POST 'http://myServer.ad1.prod:9000/api/properties?id=appName&value=UCFE&resource=pi_core'
  • 如果您没有将3个命令封装并从shell运行

  • ,则&开始时会向后台发送3个命令
  • 在博客上显示时,API文档通常是不完整的,测试有限,被抛在一起,甚至无意中陷入逃避过程。

在命令行上使用curl时,请记住shell首先解释命令。

因此,上面的 arg7 arg8 作为参数发送到cURL。 cURL不知道" value = UCFE"意味着错误:

  

'值'不被视为内部或外部命令

当您在一个参数(例如,cURL的网址)中发送一个文本块的引号时,它看起来像这样:

旁注 - 为了完成;

引号是单引号还是双引号通常无关紧要,但它们 不同。

  • 单引号的情况:某些API中有$个符号。例如, MYOB 有许多参数,如下所示;在这种情况下,如果有很多,可能更容易使用单引号:

    '?$filter=DateOccurred%20ge%20datetime%272016-07-25%2'
    。在这种情况下,如果有很多,可能更容易使用单引号。

  • 双引号案例:很多变数:

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