到目前为止,我一直试图通过Jenkins API触发构建,但没有成功。我在'远程触发构建上配置了一个作业'并设置一个令牌,' abc'。
然后在邮递员中我发了一个帖子:
$jenkinsurl:$port/job/$jobname/build?token=abc
响应是:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 403 No valid crumb was included in the request</title>
</head>
<body>
<h2>HTTP ERROR 403</h2>
<p>Problem accessing /job/DCD%20Specifications/build. Reason:
<pre> No valid crumb was included in the request</pre>
</p>
<hr>
<i>
<small>Powered by Jetty://</small>
</i>
<hr/>
</body>
我还尝试使用有效用户名和密码进行基本身份验证,但无济于事。
我可以使用gets从Jenkins API中检索我想要的任何信息就好了;它只是这篇文章给了我这个问题。
我有Jenkins 2.7并更新到2.19.4,两个版本都给了我这个问题。我在这里做错了什么?
答案 0 :(得分:2)
这对我有用:
获得面包屑
$ wget -q --auth-no-challenge --user yourUserName --password yourPassword--output-document - 'http://myJenkins:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'
现在运行Jenkins工作
$ curl -I -X POST http://yourUserName:yourPassword@myJenkins:8080/job/JOBName/build -H "Jenkins-Crumb:44e7038af70da95a47403c3bed5q10f8"
HTTP/1.1 201 Created
Date: Fri, 28 July 2017 09:15:45 GMT
X-Content-Type-Options: nosniff
Location: http://myJenkins:8080/queue/item/17/
Content-Length: 0
答案 1 :(得分:2)
传入POST标头“ Jenkins-Crumb:5740ac1b614ca59f5dd5ef151b2895b3”。
可以从URL http://jenkins:8080/crumbIssuer/api/xml
获取您的面包屑在POST正文中,使用适当的Jenkins XML API请求。
这是我的Postman 张图片,带有参数: