Comment tester une méthode RESTful PUT (ou DELETE) en utilisant curl?
Utiliser l'indicateur -X
avec le verbe HTTP de votre choix:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
Cet exemple utilise également l'indicateur -d
pour fournir des arguments avec votre demande PUT.
Vous pouvez utiliser l'application POSTMAN de Chrome Store.
Sur une seule ligne, la commande curl serait:
a) Si vous envoyez des données de formulaire:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
b) Si vous envoyez des données brutes au format json:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
c) Si vous envoyez un fichier avec une demande POST:
curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
Pour les demandes avec d'autres formats ou pour différents clients comme Java, PHP, vous pouvez consulter POSTMAN/comment ci-dessous.
Un exemple de PUT à la suite du commentaire de Martin C. Martin:
curl -T filename.txt http://www.example.com/dir/
Avec -T
(identique à --upload-file
), curl utilisera PUT pour HTTP.
curl -X PUT -d 'new_value' URL_PATH/key
où,
X - option à utiliser pour la commande de requête
d - option à utiliser pour mettre des données sur une URL distante
URL_PATH - URL distante
new_value - valeur que nous voulons mettre à la clé du serveur
Je suis en retard à ce fil, mais j'avais aussi une exigence similaire. Comme mon script construisait la demande de curl de manière dynamique, je souhaitais une structure similaire de la commande via GET, POST et PUT.
Voici ce qui fonctionne pour moi
PourPUTrequest:
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
PourPOSTdemande:
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
PourGETrequest:
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'