我在 TeamCity 的一个构建配置中有一个名为“testing”的配置参数。在查看了此处的 TeamCity REST API 文档后,我可以在 Windows 上使用以下 cURL 命令行命令获取有关此参数的信息:
(1) curl -X GET -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters
(2) curl -X GET -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters/testing
回复:
(1) <?xml version="1.0" encoding="UTF-8" standalone="yes"?><property name="testing" value="11"/></properties>
(2) 11
但是,当我尝试使用以下命令更新此“测试”构建参数时,我收到一条错误消息:
curl -X PUT -d "1" -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters/testing
回复:
Error has occurred during request processing (Unsupported Media Type).
Error: javax.ws.rs.WebApplicationException
Not supported request. Please check URL, HTTP method and transfered data are correct.
我已经成功地使用了类似的命令来更新相同构建配置的 buildNumberCounter 设置:
curl -X PUT -d "1" -H "Authorization: Basic (...)" http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/settings/buildNumberCounter
这就是为什么我认为我可以以类似的方式对构建参数做同样的事情。我在这里想念什么?
更新:
我设法使用 Fiddler 更新了值为“1”的“测试”构建参数。我撰写的请求内容如下:
- 要求:
PUT
- 网址:
http://teamcity:8080/httpAuth/app/rest/buildTypes/id:bt7/parameters/testing
- 请求标头:
Authorization: Basic (...)
- 请求正文:
1
所以我上面的 cURL 命令的问题可能在-d "1"选项附近。但是哪里?
更新 2:
我不确定这是否有什么不同,但我在 Windows 7 上使用这个cURL 构建。