Risposte:
Usando la -X
bandiera con qualunque verbo HTTP tu voglia:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
Questo esempio usa anche il -d
flag per fornire argomenti con la tua richiesta PUT.
GET
dopo un reindirizzamento, aggiungi il parametro--location
In una sola riga, il comando arricciatura sarebbe:
a) Se si inviano i dati del modulo:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
b) Se si inviano dati grezzi come json:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
c) Se si invia un file con una richiesta POST:
curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
Puoi utilizzare l' app POSTMAN dal Chrome Store per ottenere l'equivalente richiesta cURL. Ciò è particolarmente utile quando si scrivono richieste più complicate.
Per la richiesta con altri formati o per client diversi come Java, PHP, puoi dare un'occhiata a POSTMAN / commento qui sotto.
Un esempio PUT che segue il commento di Martin C. Martin:
curl -T filename.txt http://www.example.com/dir/
Con -T
(uguale a --upload-file
) curl utilizzerà PUT per HTTP.
-T
non è un sostituto per -X PUT
se si desidera specificare i parametri con -d
o -F
. -T
invia il contenuto di un file tramite PUT. Per ottenere il GET
dopo un reindirizzamento, aggiungi il parametro--location
curl -X PUT -d 'new_value' URL_PATH/key
dove,
X: opzione da utilizzare per il comando di richiesta
d - opzione da utilizzare per inserire i dati nell'URL remoto
URL_PATH - URL remoto
new_value - valore che vogliamo mettere nella chiave del server
Sono in ritardo su questa discussione, ma anch'io avevo un requisito simile. Poiché il mio script stava costruendo la richiesta di arricciatura in modo dinamico, volevo una struttura simile del comando tra GET, POST e PUT.
Ecco cosa funziona per me
Per richiesta PUT :
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Per richiesta POST :
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Per la richiesta GET :
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'