我需要在Jenkins上执行Curl脚本以检查状态URL

qc6wkl3g  于 2023-01-12  发布在  Jenkins
关注(0)|答案(6)|浏览(195)

脚本应检查URL的Http状态代码,并在状态代码不匹配(例如200)时显示错误。在Jenkins中,如果此脚本失败,则构建应失败,并通过构建后程序触发邮件。

zy1mlcev

zy1mlcev1#

curl的另一个有趣的特性是它的-f/--fail选项。如果设置了这个选项,它将告诉curl在任何HTTP错误时失败,也就是说,如果服务器响应状态代码不是1xx/2xx/3xx,也就是说如果它是4xx或更高,curl将有一个不同于0的退出代码,所以

curl --silent --fail "http://www.example.org/" >/dev/null

或(等效):

curl -sf "http://www.example.org/" >/dev/null

如果找不到URL或发生其他HTTP错误,退出代码将为22而不是0。有关curl的各种退出代码的说明,请参见man curl

eqqqjvef

eqqqjvef2#

您可以使用this answer中提到的简单shell命令

curl -s -o /dev/null -w "%{http_code}" http://www.example.org/
c8ib6hqw

c8ib6hqw3#

如果添加了以下shell脚本,则会发生这种情况:

response=$(curl -s -o /dev/null -w "%{http_code}\n" http://www.example.org/)
if [ "$response" != "200" ]
then
 exit 1
fi

exit 1将生成标记为失败

x8goxv8g

x8goxv8g4#

Jenkins还有HTTP Request Plugin可以触发HTTP请求。
例如,您可以通过以下方式检查响应状态和内容:

def response = httpRequest "http://httpbin.org/response-headers?param1=${param1}"
println('Status: '+response.status)
println('Response: '+response.content)
qyswt5oh

qyswt5oh5#

您可以尝试:

response=`curl -k -s -X GET --url "<url_of_the_request>"`
echo "${response}"
yeotifhr

yeotifhr6#

在运行时使用bashscript URL= www.example.com“curl --location --request GET URL“中的curl传递URL如何www.google.com
我们如何在运行时传递url?

相关问题