eu uso curl
para fazer uma solicitação HTTP POST, que faz uma solicitação de redirecionamento 302. Como posso analisar a resposta de curl
comando para obter o cabeçalho de resposta usando o Groovy?
Respostas:
1 para resposta № 1Se você deseja usar o Groovy para analisar os cabeçalhos de resposta do comando cURL, tente transmitir a saída cURL como um parâmetro para um script do Groovy. Considere o seguinte script:
#!groovy
def location = (args[0] =~ "Location: ([^\n]+)\n")?.getAt(0)?.getAt(1)
println "Location: ${location}"
É preciso o primeiro parâmetro (args[0]
) e extratos Location
valor do cabeçalho usando expressão regular e imprime o que foi extraído para o console (no seu caso, você pode fazer coisas diferentes com o valor extraído, este é apenas um exemplo).
Digamos que esse script seja chamado location.groovy
.
groovy location.groovy "`curl -i http://google.com`"
Neste exemplo, eu executo uma solicitação GET simples para http://google.com. O que é importante - você deve citar duas vezes o que curl
comando retorna, porque conterá n
caracteres que estragariam um pouco se não fossem citados. Você também tem que usar -i
opção para exibir cabeçalhos e outras coisas.
Claro que você também pode fazer algo como:
CURL_RESULT=`curl -i http://google.com`
groovy location.groovy $CURL_RESULT
dividir curl
a partir de groovy
parte. Depois de executar este script, você verá algo parecido no console:
Location: http://www.google.pl/?gfe_rd=cr&dcr=0&ei=2UZjWsygGYvEXs3WrRg