我们正在尝试使用其 REST API 重命名 Jenkins 的 Job,尽管使用了正确的 REST 端点,但在使用 CURL 时我们得到的状态代码为 302 Found。邮递员工作正常。
curl -v -X POST <jenkins_url>/job/<old_job_name>/doRename?newName=cr%20test -H 'Authorization: Basic E45tg646YWRtaW4tryu=' -H 'Cache-Control: no-cache' -H 'Jenkins-Crumb: <CSRF token>'
使用 CURL 测试时的状态码:HTTP/1.1 302 Found
根据此https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,状态码 302 表示请求的资源临时驻留在不同的 URI 下。
这是每个 Jenkins REST API 的问题。
看起来在每个 Jenkins REST 请求中都有两个通过 HTTP/HTTPS 进行的调用,第一个调用对每个请求进行适当的更改,第二个调用确认是否进行了请求的更改。
重要说明 - 虽然它提供 302 状态代码,但在后台它服务于目的。如果我的上述陈述是正确的,那么在第二次呼叫确认是否进行了更改时,它会失败。
请建议我将如何解决这个问题。