通过URL触发构建使我没有包含在请求错误中的碎片

时间:2016-11-30 09:20:56

标签: jenkins

到目前为止,我一直试图通过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,两个版本都给了我这个问题。我在这里做错了什么?

2 个答案:

答案 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 张图片,带有参数:

Postman Jenkins Jenkins-Crumb