Eu tento usar o Curl para enviar alguns dados. Aqui está um exemplo mais simples que funciona:
curl -v -H "Content-type: text/html" 127.0.0.1:1111
Eu vejo a saída assim:
GET / HTTP/1.1
Host: 127.0.0.1:1111
User-Agent: curl/7.49.1
Accept: */*
Content-type: text/html
O tipo de conteúdo é definido lá na saída. Funciona. O que eu quero é inserir o tipo de conteúdo usando a variável de ambiente.
Eu escrevo isto:
HTML='-H "Content-Type: text/html"
Então no próximo comando eu escrevo isto:
curl -v $HTML 127.0.0.1:1111
Mas falhou. Eu tenho esta saída:
GET / HTTP/1.1
Host: 127.0.0.1:1111
User-Agent: curl/7.49.1
Accept: */*
"Content-Type: text/html"
Curl não está fazendo um cabeçalho real, é apenas uma string solta. Tem citações em torno dele e é recuo como você pode ver acima. Isso é diferente de antes e, portanto, o comando não funciona. Ele é rejeitado pelo servidor como um tipo de conteúdo incorreto.
Eu tentei usar --header em vez de -H assim:
HTML='--header "Content-Type: text/html"'
Isso gera um erro confuso:
curl: option --header "Content-Type: text/html": is unknown
curl: try 'curl --help' or 'curl --manual' for more information
Estou confuso. Eu tenho visto outras mensagens aqui de pessoas que querem variáveis de ambiente dentro de dados de postagem, o que é um problema diferente.
Estou usando o zsh e o Curl no MAC OS X. Espero que meu exemplo seja simples o suficiente.
Obrigado pelo seu tempo e ajuda!