Respostas:
Usando o -X
sinalizador com o verbo HTTP que você deseja:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
Este exemplo também usa o -d
sinalizador para fornecer argumentos com sua solicitação PUT.
GET
redirecionamento após, adicione o parâmetro--location
Em uma única linha, o comando curl seria:
a) Se estiver enviando dados do formulário:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
b) Se estiver enviando dados brutos como json:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
c) Se estiver enviando um arquivo com uma solicitação POST:
curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
Você pode usar o aplicativo POSTMAN da Chrome Store para obter a solicitação cURL equivalente. Isso é especialmente útil ao escrever solicitações mais complicadas.
Para a solicitação com outros formatos ou para diferentes clientes como java, PHP, você pode conferir o POSTMAN / comment abaixo.
Um exemplo de PUT após o comentário de Martin C. Martin:
curl -T filename.txt http://www.example.com/dir/
Com -T
(igual a --upload-file
), o curl usará PUT para HTTP.
-T
não substitui -X PUT
se você deseja especificar parâmetros com -d
ou -F
. -T
envia o conteúdo de um arquivo via PUT. Para obter o GET
redirecionamento após, adicione o parâmetro--location
curl -X PUT -d 'new_value' URL_PATH/key
Onde,
X - opção a ser usada para o comando request
d - opção a ser usada para colocar dados em url remoto
URL_PATH - URL remoto
new_value - valor que queremos colocar na chave do servidor
Estou atrasado para esta discussão, mas eu também tinha um requisito semelhante. Como meu script estava construindo a solicitação de ondulação dinamicamente, eu queria uma estrutura semelhante do comando em GET, POST e PUT.
Aqui está o que funciona para mim
Para solicitação PUT :
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Para solicitação POST :
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Para solicitação GET :
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'