在Jenkins的HttpRequest插件的请求体中的Susbstitute环境变量

时间:2016-07-05 10:09:30

标签: jenkins jenkins-plugins http-request

我使用HTTP Request Plugin来调用基于REST的Web服务。在这些调用中,我想以JSON格式传递请求正文中的控制台输出URL。

我正在使用环境变量${BUILD_URL}/console构建控制台输出URL。

环境变量替换适用于URL,但不适用于请求正文。有关代码更改的任何建议,需要对插件代码进行更改才能使其正常工作。有人可以分享有关Jenkins如何进行变量替换以及为什么它在这种情况下不起作用的信息。

以下是JSON请求正文:

{'state':'4', 'short_description':'${BUILD_URL}console'}

1 个答案:

答案 0 :(得分:0)

我能够找到解决方案。测试并确认它正在工作。

您需要在HttpRequest.java的{​​{1}}方法中添加以下行:

perform

在调用public boolean perform(AbstractBuild<?,?> build, Launcher launcher, BuildListener listener){ throws InterruptedException, IOException requestBody = evaluate(requestBody, build.getBuildVariableResolver(), envVars); //rest of the code as it is } 方法之前,请确保添加一行来评估requestBody成员是否存在环境变量。