tutorial query puertos primeros pasos index documentacion crear jenkins groovy jenkins-plugins jenkins-workflow

jenkins - query - logstash tutorial



¿Cómo puedo realizar solicitudes HTTP POST desde un script Jenkins Groovy? (3)

Necesito poder crear una solicitud HTTP POST simple durante nuestras compilaciones Jenkins Pipeline . Sin embargo, no puedo usar un simple script curl sh ya que lo necesito para trabajar en nodos de Windows y Linux, y no deseo aplicar más instalaciones de herramientas en los nodos si puedo evitarlo.

La biblioteca Groovy en uso en el complemento Pipeline que estamos usando debe ser perfecta para esta tarea. Hay una extensión disponible para que Groovy realice POST simples llamadas http-builder , pero no puedo por la vida de mí averiguar cómo usarla en la instalación Groovy de Jenkins.

Si trato de usar Grapes Grab para usarlo dentro de un script de Pipeline, aparece un error al no hacerlo, como se ve aquí .

@Grapes( @Grab(group=''org.codehaus.groovy.modules.http-builder'', module=''http-builder'', version=''0.7.1'') )

Tal vez Grapes Grab no es compatible con la versión incluida de los usos de Groovy Jenkins. ¿Es posible simplemente descargar y agregar http-builder y sus dependencias a la instalación de Jenkins Groovy que se envía a los nodos?


Debe descargar y copiar el archivo ivy.jar en el directorio lib de Jenkins (por ejemplo, C: / Archivos de programa (x86) / Jenkins / war / WEB-INF / lib) y reiniciar Jenkins (por ejemplo, a través de los servicios del sistema), entonces es posible usa @Grab desde la consola de scripts. Más información: https://groups.google.com/forum/#!msg/job-dsl-plugin/EG6eqQYYI7M/2TKKysNw4QEJ


Para la canalización de Jenkin, recomendaría instalar el complemento "HTTP-Request"

Está muy bien integrado en groovy, así que puedes usarlo así:

def response = httpRequest "http://httpbin.org/response-headers?param1=${param1}"


Tal vez me esté perdiendo algo, pero ¿por qué no usar bibliotecas java estándar que ya están en el classpath de jenkins?

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&param2=def")