我正在使用sh命令和curl编写一个Jenkins Pipeline。
使用常规命令提示符可以存储响应cookie,然后在另一个请求中发送这些cookie,例如存储cookie
curl -k -c my_cookies.txt -X POST https://myLogin
,然后用这些cookie发送请求
curl -k -b my_cookies.txt -X GET https://myGetRequest
是否有可能与Jenkins Pipeline有类似的东西?
我试过这样做:
final String url = "https://myLogin"
final String response = sh(script: "curl -c my_cookie.txt -k -X POST $url ", returnStdout: true).trim()
但是这会产生像
这样的错误curl: (35) Encountered end of file
任何帮助都是感激的。
可以这样做:
pipeline {
agent any;
stages {
stage('call 1st api') {
steps {
sh """
curl --cookie-jar $WORKSPACE/cookie.txt https://62e96ddc0c77.ngrok.io/put
"""
}
}
stage('call 2nd api') {
steps {
sh """
curl --cookie $WORKSPACE/cookie.txt https://62e96ddc0c77.ngrok.io/get
"""
}
}
}
}
在上面的例子中,如果第一次调用成功,cookie将存储在$WORKSPACE/cookie.txt
位置,第二次调用将从相同的位置读取它。$WORKSPACE
-是Job工作区的位置。你不需要硬编码的位置,因为詹金斯照顾它