我正在使用HTTP请求插件来调用基于REST的Web服务。在这些调用中,我想以JSON格式在请求体中传递控制台输出URL。
我正在使用环境变量${BUILD_URL}/console
构造控制台输出URL。
环境变量替换对URL有效,但对请求体无效。任何关于代码更改的建议,需要对插件代码进行修改,以使其工作。是否有人可以分享有关Jenkins如何确切地做变量替换以及为什么它在这种情况下不工作的信息。
下面是JSON请求正文:
{'state':'4', 'short_description':'${BUILD_URL}console'}
我能想出解决办法。测试并确认它有效。
您需要在HttpRequest.java
的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
}
请确保在调用performHttpRequest(build, listener, evaluatedUrl, params)
方法之前添加行来评估requestBody
成员中是否存在环境变量。