Respuestas:
Usando la -X
bandera con cualquier verbo HTTP que desee:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
Este ejemplo también usa el -d
indicador para proporcionar argumentos con su solicitud PUT.
GET
después de una redirección, agregue el parámetro--location
En una sola línea, el comando curl sería:
a) Si envía datos del formulario:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
b) Si envía datos sin procesar como json:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
c) Si envía un archivo con una solicitud POST:
curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
Puede usar la aplicación POSTMAN de Chrome Store para obtener la solicitud de cURL equivalente. Esto es especialmente útil al escribir solicitudes más complicadas.
Para la solicitud con otros formatos o para diferentes clientes como Java, PHP, puede consultar POSTMAN / comentario a continuación.
Un ejemplo PUT siguiendo el comentario de Martin C. Martin:
curl -T filename.txt http://www.example.com/dir/
Con -T
(igual que --upload-file
) curl usará PUT para HTTP.
-T
no es un sustituto -X PUT
si desea especificar parámetros con -d
o -F
. -T
envía el contenido de un archivo a través de PUT. Para lograr GET
después de una redirección, agregue el parámetro--location
curl -X PUT -d 'new_value' URL_PATH/key
dónde,
X: opción que se utilizará para el comando de solicitud
d: opción que se utilizará para colocar datos en la URL remota
URL_PATH - URL remota
new_value: valor que queremos poner en la clave del servidor
Llego tarde a este hilo, pero yo también tenía un requisito similar. Como mi script estaba construyendo la solicitud de curl dinámicamente, quería una estructura similar del comando en GET, POST y PUT.
Esto es lo que funciona para mí.
Para solicitud PUT :
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Para solicitud POST :
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Para solicitar GET :
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'