Shell 我需要在Jenkins上执行一个Curl脚本,以便检查状态URL

Shell 我需要在Jenkins上执行一个Curl脚本,以便检查状态URL,shell,curl,jenkins,Shell,Curl,Jenkins,脚本应该检查URL的Http状态代码,当状态代码与例如200不匹配时,应该显示错误。 在Jenkins中,如果此脚本失败,则生成应该失败,邮件将通过生成后过程触发。您可以使用中提到的简单shell命令 如果添加以下shell脚本,则会发生这种情况: response=$(curl -s -o /dev/null -w "%{http_code}\n" http://www.example.org/) if [ "$response" != "200" ] then exit 1 fi exi

脚本应该检查URL的Http状态代码,当状态代码与例如200不匹配时,应该显示错误。
在Jenkins中,如果此脚本失败,则生成应该失败,邮件将通过生成后过程触发。

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


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

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

exit 1
会将构建标记为失败

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

curl --silent --fail "http://www.example.org/" >/dev/null
或(相当于):

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

您可以尝试:

response=`curl -k -s -X GET --url "<url_of_the_request>"`
echo "${response}"
response=`curl-k-s-xget--url“”`
回显“${response}”
詹金斯还有一个可以触发HTTP请求的

例如,您可以通过以下方式检查响应状态和内容:

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

我想检查http代码,如果它不是200,那么它应该显示一些消息或退出。您可以在任何shell脚本中使用此代码。它返回请求的响应http代码。手册页中的重要警告:“此方法不是故障安全的,有时会漏掉不成功的响应代码,特别是在涉及身份验证时(响应代码401和407)。”,401并不总是一个问题。在我的例子中,即使是401,它也失败了
response=`curl -k -s -X GET --url "<url_of_the_request>"`
echo "${response}"
def response = httpRequest "http://httpbin.org/response-headers?param1=${param1}"
println('Status: '+response.status)
println('Response: '+response.content)