如何从jenkinsfile中的curl获取响应代码

时间:2018-02-08 15:08:58

标签: curl jenkins jenkins-pipeline

在jenkins文件中,我用curl调用:

sh "curl -X POST -i -u admin:admin https://[myhost]"

我得到这样的输出:

...
HTTP/1.1 204 No Content
Server: Apache-Coyote/1.1
...

我想根据上述调用的响应代码采取不同的操作,但是如何只在变量中存储响应代码/回复?

3 个答案:

答案 0 :(得分:1)

将响应放入变量:

def response = sh returnStdout: true, script: 'curl -X POST -i -u admin:admin https://[myhost]'

然后使用正则表达式提取状态代码。

Pattern pattern = Pattern.compile("(\\d{3})");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
  matcher.group(1);
}

答案 1 :(得分:0)

借助the given answer和其他文档,我得出了以下解决方案:

import React from 'react';

class Example extends React.Component { // instead of Component

}

答案 2 :(得分:0)

使用参数-w %{http_code}(来自Use HTTP status codes from curl

您可以轻松获取HTTP响应代码:

int status = sh(script: "curl -w '%{http_code}' $url", returnStdout: true)

if (status != 200 || status != 201) {
    error("Returned status code = $status when calling $url")
}