Como fazer upload de um arquivo usando http PUT com httpie?

1

Para alguns testes de servidor web, eu uso o curl para upload de arquivos assim:

$ curl --silent --digest --user user:pass --upload-file filename http://server/dir/

Agora eu tentei arquivar a mesma função, mas com o uso de httpie. Tentei algo como:

$ http --auth-type digest --auth user:pass PUT http://server/dir/

mas não consegue encontrar um parâmetro para transmitir um nome de arquivo para upload. Tentando, por exemplo isso

$ http --auth-type digest --auth user:pass PUT http://server/dir/ A=B

tem como consequência que o conteúdo {"A": "B"} será passado como corpo da solicitação http mas eu quero passar o conteúdo bruto de um arquivo (talvez binário) como corpo da solicitação (como possível com o curl).

Pode haver uma maneira de fazer isso também usando httpie?

(Eu testei com o httpie 0.9.2 no host do Kubuntu 16.04.)

    
por Joe 22.09.2017 / 02:36

1 resposta

0

Ok, aprofundando-se na documentação do httpie, descobrindo que há duas maneiras de transmitir dados brutos do corpo.

Quer por redirecionamento de tubulação ou de entrada. httpie lê os dados do corpo do stdin:

$ cat filename | http --auth-type digest --auth user:pass PUT http://server/dir/filename

ou

$ http --auth-type digest --auth user:pass PUT http://server/dir/filename <filename

ou usando esse parâmetro @ como este:

$ http --auth-type digest --auth user:pass PUT http://server/dir/filename @filename

Veja também:

por 22.09.2017 / 02:59