web-services - tutorial - para que se usa elastic search
Cómo probar el servicio web usando curl de línea de comando (3)
Estoy construyendo un servicio web para una aplicación web, y me gustaría una herramienta simple para probar esto mientras desarrollo. He probado algunos complementos de Firefox (Poster, ''REST Client''), y aunque funcionan bien, no he podido subir archivos con ellos.
Además, prefiero tener una herramienta de línea de comandos que pueda usar para escribir fácilmente un conjunto de pruebas de integración para este servicio web y que pueda enviar a los consumidores de este servicio web como ejemplo.
Sé que curl
puede funcionar para esto, pero me gustaría tener algunos ejemplos, especialmente sobre la autenticación (usando HTTP Basic) y la carga de archivos.
Respondiendo mi propia pregunta.
curl -X GET --basic --user username:password /
https://www.example.com/mobile/resource
curl -X DELETE --basic --user username:password /
https://www.example.com/mobile/resource
curl -X PUT --basic --user username:password -d ''param1_name=param1_value'' /
-d ''param2_name=param2_value'' https://www.example.com/mobile/resource
POSTING un archivo y un parámetro adicional
curl -X POST -F ''param_name=@/filepath/filename'' /
-F ''extra_param_name=extra_param_value'' --basic --user username:password /
https://www.example.com/mobile/resource
Además de las respuestas existentes, a menudo se desea formatear la salida REST (generalmente JSON y XML carece de sangría). Prueba esto:
$ curl https://api.twitter.com/1/help/configuration.xml | xmllint --format -
$ curl https://api.twitter.com/1/help/configuration.json | python -mjson.tool
Probado en Ubuntu 11.0.4 / 11.10.
Otro problema es el tipo de contenido deseado. Twitter usa la extensión .xml
/ .json
, pero un RESTO más idiomático requeriría el encabezado Accept
:
$ curl -H "Accept: application/json"
De la documentación en http://curl.haxx.se/docs/httpscripting.html :
Autenticación HTTP
curl --user name:password http://www.example.com
Coloque un archivo en un servidor HTTP con curl:
curl --upload-file uploadfile http://www.example.com/receive.cgi
Enviar datos de publicación con curl:
curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi