在groovy中解析curl响应

在groovy中解析curl响应,curl,post,groovy,http-headers,Curl,Post,Groovy,Http Headers,我使用curl发出HTTP POST请求,该请求发出302重定向请求。如何使用Groovy解析curl命令的响应以获取响应头?如果要使用Groovy解析curl命令的响应头,可以尝试将curl输出作为参数传递给Groovy脚本。考虑以下脚本: #!groovy def location = (args[0] =~ 'Location: ([^\\n]+)\\n')?.getAt(0)?.getAt(1) println "Location: ${location}" 它接受第一个参数(ar

我使用
curl
发出HTTP POST请求,该请求发出302重定向请求。如何使用Groovy解析
curl
命令的响应以获取响应头?

如果要使用Groovy解析curl命令的响应头,可以尝试将curl输出作为参数传递给Groovy脚本。考虑以下脚本:

#!groovy

def location = (args[0] =~ 'Location: ([^\\n]+)\\n')?.getAt(0)?.getAt(1)

println "Location: ${location}"
它接受第一个参数(
args[0]
),并使用正则表达式提取
Location
头值,并将提取的内容打印到控制台(在您的情况下,您可以使用提取的值执行不同的操作,这只是一个示例)

假设这个脚本名为
location.groovy

groovy location.groovy "`curl -i http://google.com`"
在本例中,我执行简单的GET请求。重要的是-您必须双引号引用
curl
命令返回的内容,因为它将包含
\n
字符,如果不引用,这些字符将有点混乱。您还必须使用
-i
选项来显示标题和其他内容

当然,您也可以执行以下操作:

CURL_RESULT=`curl -i http://google.com`
groovy location.groovy $CURL_RESULT
groovy
部分拆分
curl
。运行此脚本后,您将在控制台中看到类似的内容:

Location: http://www.google.pl/?gfe_rd=cr&dcr=0&ei=2UZjWsygGYvEXs3WrRg

到目前为止你都试了些什么?你能邮寄吗?并检查标题,比如如果希望通过groovy输出进程,请使用groovy库而不是curl。您将能够更好地编写和测试代码。我刚才提供的两个链接不使用库为什么要使用curl?如果curl不在机器上怎么办?如果你部署到一台没有卷曲的机器上呢?