S.R*_*ond 17 groovy jenkins jenkins-plugins jenkins-workflow
我需要能够在Jenkins管道构建期间创建简单的HTTP POST请求.但是我不能使用简单的curl sh脚本,因为我需要它在Windows和Linux节点上工作,如果我可以避免它,我不希望在节点上强制执行更多的工具安装.
我们正在使用的Pipeline插件中使用的Groovy库应该是完成此任务的完美选择.有一个扩展可供Groovy执行名为http-builder的简单POST ,但我不能在我的生活中解决如何在Jenkins的Groovy安装中使用它.
如果我尝试使用Grapes Grab在Pipeline脚本中使用它,我会收到错误,如此处所示.
@Grapes(
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1')
)
Run Code Online (Sandbox Code Playgroud)
Groovy Jenkins使用的捆绑版本可能不支持Grapes Grab.是否可以简单地下载并添加http-builder及其依赖项到Jenkins Groovy安装到节点?
小智 36
对于Jenkin的Pipeline,我建议安装"HTTP-Request"插件
它很好地集成在groovy中,所以你可以像这样使用它:
def response = httpRequest "http://httpbin.org/response-headers?param1=${param1}"
Run Code Online (Sandbox Code Playgroud)
也许我错过了什么,但为什么不使用已经在jenkins类路径上的标准java库?
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.net.URL
import java.net.URLConnection
def sendPostRequest(urlString, paramString) {
def url = new URL(urlString)
def conn = url.openConnection()
conn.setDoOutput(true)
def writer = new OutputStreamWriter(conn.getOutputStream())
writer.write(paramString)
writer.flush()
String line
def reader = new BufferedReader(new InputStreamReader(conn.getInputStream()))
while ((line = reader.readLine()) != null) {
println line
}
writer.close()
reader.close()
}
sendPostRequest("http://www.something.com", "param1=abc¶m2=def")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27987 次 |
| 最近记录: |