Preciso fazer uma solicitação POST via Curl na linha de comando. Os dados para esta solicitação estão localizados em um arquivo. Eu sei que via PUT isso poderia ser feito com a --upload-file
opção
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
http
curl
http-post
command-line-interface
criador
fonte
fonte
Respostas:
Você está procurando o
--data-binary
argumento:No exemplo acima,
-i
imprime todos os cabeçalhos para que você possa ver o que está acontecendo e-X POST
torna explícito que se trata de uma postagem. Ambos podem ser omitidos com segurança sem alterar o comportamento no fio. O caminho para o arquivo precisa ser precedido por um@
símbolo, paracurl
saber a leitura de um arquivo.fonte
.xml
@
parte é extremamente importante!-d
fará comcurl
que as novas linhas sejam removidas , mas--data-binary
não o fará.Tudo o que você precisa fazer é
--data
iniciar o argumento com um@
:Por exemplo, se você tiver os dados em um arquivo chamado
stuff.xml
, faria algo como:O
stuff.xml
nome do arquivo pode ser substituído por um caminho relativo ou completo para o arquivo:@../xml/stuff.xml
,@/var/tmp/stuff.xml
, ...fonte
--data "name@stuff"
.Se você estiver usando dados do formulário para fazer upload de arquivo, no qual um nome de parâmetro deve ser especificado, você poderá usar:
curl -X POST -i -F "parametername=@filename" -F "additional_parm=param2" host:port/xxx
fonte
parametername=
realmente me ajudou:) #A maioria das respostas é perfeita aqui, mas quando cheguei aqui para o meu problema específico, tenho que fazer upload de arquivo binário (planilha XLSX) usando o método POST, vejo uma coisa faltando , ou seja, geralmente não é apenas o arquivo que você carrega, você pode ter mais elementos de dados do formulário , como comentar ou arquivar tags etc., como foi o meu caso. Por isso, gostaria de adicioná-lo aqui, pois era meu caso de uso, para que pudesse ajudar outras pessoas.
fonte
Eu tive que usar uma conexão HTTP, porque no HTTPS existe um limite de tamanho de arquivo padrão.
https://techcommunity.microsoft.com/t5/IIS-Support-Blog/Solution-for-Request-Entity-Too-Large-error/ba-p/501134
fonte