Curl: Leia os cabeçalhos de um arquivo e use-os em um comando cURL

0

Eu tenho um script bash com o seguinte comando curl:

curl -v -X GET https://example.com -H ~/Desktop/headers.txt -o ~/Desktop/file.txt

Quando eu executo o script bash eu estou ficando 401 desautorizado. Obviamente, eu não estou lendo o arquivo de cabeçalho corretamente. Meu arquivo de cabeçalho se parece com o seguinte: "Authorization: Bearer 40bsafsdgds34234 ....". Minha versão curl é de 7,26

    
por Athanasios Mel 28.09.2018 / 15:38

2 respostas

2

A opção

-H lê as informações de cabeçalho por padrão do argumento (texto), não dos arquivos.

Como curl 7.55 , você pode usar -H @file para ler de um arquivo.

Para versões antigas, você precisa de um script pequeno, algo assim:

curl $(xargs -a headers.txt -I{} printf '-H "%s" ' "{}") URL

Alguns links:

Alternativa :

Crie o arquivo de configuração incluindo -H "..." :

-H "Authorization: bearer token"
-H "Another header"

e use a opção -K/--config <config file> .

ou automaticamente com o seu arquivo original via sed :

curl -K <(sed -r 's/^(.*)$/-H ""/' headers.txt) URL
    
por 28.09.2018 / 16:19
0

Depois de muita tentativa e erro, descobri que isso funciona para mim

curl -v -X GET https://example.com -H "$(cat ~/Desktop/headers.txt)" -o ~/Desktop/file.txt 
    
por 28.09.2018 / 16:17