前言
在做gitblit仓库的钩子的时候,用到了groovy脚本,有任务需要在推送完成后执行以下jenkins的一些任务,然后出现问题了,jenkins的任务地址,在网页上调用没有问题,但是在脚本内就会失败,最后发现需要补充一个请求的标头在可以成功
在groovy脚本内执行jenkins任务
import com.gitblit.utils.JGitUtils
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.transport.ReceiveCommand
String triggerUrl = "http://内网地址/job/jenkins任务名/buildWithParameters?任务参数"
def url = new URL(triggerUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.getContent();
在上述groovy脚本内,我们通过地址,执行了一个jenkins的任务,但是任务失败了失败了,报错信息如上图所示
String triggerUrl = "http://内网地址/job/jenkins任务名/buildWithParameters?任务参数"
def url = new URL(triggerUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Cookie", "jenkins-timestamper-offset=-28800000; screenResolution=1920x1080; JSESSIONID.b0b6f386=node01sfcleub6om466nw6tvlzkh2v246.node0");
connection.getContent();
经过简单的测试,发现需要给请求补充一个标头才可以,伪装一下,标头不用特别多的信息,只需要有Cookie就可以了,Cookie可以在jenkins任务的网页上获取到,将任务地址输入在网页搜索栏,然后按F12,如上图所示可以看到需要的Cookie
推送
- Github
https://github.com/KingSun5
结语
若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。
本文属于原创文章,转载请著名作者出处并置顶!!