代码之家  ›  专栏  ›  技术社区  ›  PingPong

在groovy中解析curl响应

  •  -2
  • PingPong  · 技术社区  · 7 年前

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Szymon Stepniak    7 年前

    如果要使用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请求 http://google.com . 什么是重要的-你必须重复引用什么 curl 命令返回,因为它将包含 \n 如果不引用会有点混乱的字符。您还必须使用 -i 显示标题和其他内容的选项。

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

    CURL_RESULT=`curl -i http://google.com`
    groovy location.groovy $CURL_RESULT
    

    拆分 卷曲 从…起 groovy 部分运行此脚本后,您将在控制台中看到类似的内容:

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