Passando dados binários para enrolar sem usar um @file

26

É possível usar o curl e postar dados binários sem passar um nome de arquivo? Por exemplo, você pode postar um formulário usando binário via --data-binary:

curl -X POST --data-binary @myfile.bin http://foo.com

No entanto, isso requer que exista um arquivo. Eu estava esperando poder registrar chamadas HTTP (como serviços de descanso) como o texto do comando curl para reproduzir a solicitação. (isso ajuda muito na depuração desses serviços, por exemplo)

No entanto, os comandos curl de registro que fazem referência a um arquivo não seriam úteis, então eu esperava poder registrar os dados binários brutos, presumivelmente codificados em base64, e ainda permitir que você copie e cole o comando curl registrado e execute-o .

Então, é possível usar o curl e postar dados binários sem referenciar um arquivo? Se sim, como isso funcionaria? Como seria um exemplo?

    
por Kirk Woll 30.05.2013 / 02:00

2 respostas

38

Você pode passar os dados para o curl via STDIN da seguinte forma:

echo -e '...data...\n' | curl -X POST --data-binary @- http://foo.com

O @- diz curl para extrair do STDIN.

Para canalizar dados binários para enrolar (por exemplo):

echo -e '\x03\xF1' | curl -X POST --data-binary @- http://foo.com
    
por 30.05.2013 / 02:20
0

Não sei por que, mas a linha de comando exata sugerida pelo slm não funcionou para mim. Com uma ligeira modificação, os seguintes trabalhos:

echo -e '...data...\n' | curl -s -T - sftp://[email protected]/~/test.txt
    
por 09.10.2017 / 22:32

Tags