Curl 如何缓解这一问题;错误403请求中未包含有效碎屑;尝试将生成触发器发布到Performce时

Curl 如何缓解这一问题;错误403请求中未包含有效碎屑;尝试将生成触发器发布到Performce时,curl,jenkins,jenkins-plugins,perforce,Curl,Jenkins,Jenkins Plugins,Perforce,据我所知,我必须使用以下命令来发布一个触发器来构建 #!/bin/bash # The first argument is the change number CHANGE=$1 # POST the payload curl --header 'Content-Type: application/json' \ --request POST \ --data "{\"change\":$CHANGE, \"p4port\":\"localhost:1666\"}" \

据我所知,我必须使用以下命令来发布一个触发器来构建

#!/bin/bash

# The first argument is the change number
CHANGE=$1

# POST the payload
curl --header 'Content-Type: application/json' \
     --request POST \ 
     --data "{\"change\":$CHANGE, \"p4port\":\"localhost:1666\"}" \
     http://localhost:8080/p4/change
我已经修改了一点,添加了我的端口,并更改了号码,之后它开始给我面包屑未找到的问题

在读了这篇文章之后,我第一次尝试禁用CSRF,但这给了我一个404,所以我尝试启用它,得到面包屑并像这样嵌入它,这又给了我一个404

curl -X POST http://username:password@jenkinsip:8080/p4/change -H "Jenkins-Crumb:the-crumb" --data "{\"change\":$CHANGE, \"p4port\":\"myport\"}"
但是如果我尝试这个,我会再次得到相同的403错误

curl -X POST http://jenkinsip:8080/p4/change -H "Jenkins-Crumb:the-crumb" --data "{\"change\":$CHANGE, \"p4port\":\"myport\"}"

那么,我做错了什么,在请求Jenkins根据您的新性能更改触发构建之前,它给了我404

,您需要向Jenkins请求一个碎屑,并将响应包含在您的请求中

以下触发器脚本适用于我们:

#!/bin/bash
CHANGE=$1

P4PORT=<perforceserver>:<portnumber>
JUSER=<jenkinsuser>
JPASS=<hispassword>
JSERVER=https://<jenkinsserver>

# Get CRUMB
CRUMB=$(curl --insecure --silent --user $JUSER:$JPASS $JSERVER/crumbIssuer/api/xml?xpath=concat\(//crumbRequestField,%22":"%22,//crumb\))

curl --header "$CRUMB" \
     --request POST \
     --insecure \
     --silent \
     --user $JUSER:$JPASS \
     --data payload="{change:$CHANGE,p4port:\"$P4PORT\"}" \
     $JSERVER/p4/change
#/bin/bash
零钱=1美元
P4PORT=:
朱瑟=
JPASS=
JSERVER=https://
#吃面包屑
CRUMB=$(curl——不安全——静默——用户$JUSER:$JPASS$JSERVER/crumbisuer/api/xml?xpath=concat\(//crumrequestfield,%22):“%22,//CRUMB\))
卷曲--标题“$crump”\
--请帖\
--不安全\
--沉默的\
--用户$JUSER:$JPASS\
--数据有效负载=“{change:$change,p4port:\”$p4port\“}”\
$JSERVER/p4/change
更新

我刚刚发现,我曾经从Jenkins Performance插件的文档中窃取了上述脚本。看。

谢谢,这个链接真的帮了我的忙。