如何在Jenkins DSL中返回httpRequest的正文?

乔什·博雷加德

我有一个步骤,可以使用httpRequest步骤成功调用远程URL,但是,我不知道如何使用返回的正文。

我已经设置了,logResponseBody: true但是在控制台日志中没有任何正文输出。

希蒙·斯蒂芬尼克

httpRequest 插件返回一个响应对象,该对象公开了例如

  • Stirng getContent() -响应体为 String
  • int getStatus() -HTTP状态码

您可以使用JsonSlurperclass解析对JSON对象的响应(如果从请求中获取的响应是JSON类型)。考虑以下示例管道:

import groovy.json.JsonSlurper

pipeline {
    agent any 
    stages {
        stage('Build') { 
            steps {
                script {
                    def response = httpRequest 'https://dog.ceo/api/breeds/list/all'
                    def json = new JsonSlurper().parseText(response.content)

                    echo "Status: ${response.status}"

                    echo "Dogs: ${json.message.keySet()}"
                }
            }
        }
    }
}

在此示例中,我们将连接到打开的JSON API(https://dog.ceo/api/breeds/list/all),并使用echo方法显示两件事:HTTP状态和此JSON响应中所有狗的列表。如果您在Jenkins中运行此管道,您将在控制台日志中看到类似的内容:

[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/test-pipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] script
[Pipeline] {
[Pipeline] httpRequest
HttpMethod: GET
URL: https://dog.ceo/api/breeds/list/all
Sending request to url: https://dog.ceo/api/breeds/list/all
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
Status: 200
[Pipeline] echo
Dogs: [affenpinscher, african, airedale, akita, appenzeller, basenji, beagle, bluetick, borzoi, bouvier, boxer, brabancon, briard, bulldog, bullterrier, cairn, chihuahua, chow, clumber, collie, coonhound, corgi, dachshund, dane, deerhound, dhole, dingo, doberman, elkhound, entlebucher, eskimo, germanshepherd, greyhound, groenendael, hound, husky, keeshond, kelpie, komondor, kuvasz, labrador, leonberg, lhasa, malamute, malinois, maltese, mastiff, mexicanhairless, mountain, newfoundland, otterhound, papillon, pekinese, pembroke, pinscher, pointer, pomeranian, poodle, pug, pyrenees, redbone, retriever, ridgeback, rottweiler, saluki, samoyed, schipperke, schnauzer, setter, sheepdog, shiba, shihtzu, spaniel, springer, stbernard, terrier, vizsla, weimaraner, whippet, wolfhound]
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java 11中读取HttpRequest的正文?

如何在Jenkins DSL中添加上游作业

如何在Jenkins Job DSL中设置内部名称?

如何在Jenkins DSL中强制执行参数排序?

如何在jenkins DSL的groovy脚本中使用存储在jenkins中的凭据

如何在 Jenkins 中执行 jFrog CLI?

如何在Jenkins中拆分JUnit测试

如何在Jenkins中git提取--unshallow?

如何在Jenkins中限制凭证?

如何在 Django 中返回不完整的正文错误?

如何在Jenkins Web Hook帖子请求正文中阅读?

如何在Jenkins中使用Job DSL插件删除脚本?

如何在Jenkins中创建带有参数和正文的共享库?

如何在Jenkins Job DSL Groovy脚本中设置监视器视图的作业顺序?

如何在Jenkins Job DSL中创建可扩展的基础作业?

如何在Jenkins工作流(管道)插件中执行Job DSL脚本

Jenkins DSL插件:如何在现有的jenkins视图中创建作业?

如何在Maven / Jenkins作业中替换POM中的属性?

如何在UnitTest ++ 1.4中使用jenkins管道脚本

Jenkins:如何在唯一目录中运行构建

如何在Jenkins工作流程中编辑Build Parameters?

如何在 Jenkins 中获取拉取请求的差异?

如何在Jenkins中为基于Maven的项目创建标签

如何在Jenkins Job中删除Docker映像

如何在Jenkins中更改JAR构建路径?

如何在 Android 中获取 Jenkins 内部版本号?

如何在 Jenkins 中本地触发 WebdriverIo 框架(源代码)?

如何在 Jenkins 中为 Java 配置 Checkstyle 配置

如何在 jenkins Blue Ocean UI 中显示超链接?