webservice test soapaction from consumir consume con calling linux web-services curl

test - HTTP POST y GET usando cURL en Linux



linux web service client (2)

Esta pregunta ya tiene una respuesta aquí:

Tuve una aplicación de servidor en asp.net en Windows en que tenía un servicio web para eso.

¿Cómo puedo llamar al servicio web en Linux usando shell script usando el comando cURL?


* nix proporciona un pequeño y agradable comando que nos facilita las vidas.

OBTENER:

con JSON:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource

con XML:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource

ENVIAR:

Para publicar datos:

curl --data "param1=value1&param2=value2" http://hostname/resource

Para subir archivos:

curl --form "[email protected]" http://hostname/resource

RESTful HTTP Post:

curl -X POST -d @filename http://hostname/resource

Para iniciar sesión en un sitio (auth):

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login curl -L -b headers http://localhost/

Bonita impresión de los resultados del rizo:

Para JSON:

Si usa npm y nodejs , puede instalar el paquete json ejecutando este comando:

npm install -g json

Uso:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json

Si usa pip y python , puede instalar el paquete pjson ejecutando este comando:

pip install pjson

Uso:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | pjson

Si usas Python 2.6+, la herramienta json se incluye en el paquete.

Uso:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | python -m json.tool

Si usas gem y ruby , puedes instalar el paquete colorful_json ejecutando este comando:

gem install colorful_json

Uso:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | cjson

Si usa apt-get (administrador de paquetes de aptitude de su distribución de Linux), puede instalar el paquete yajl-tools ejecutando este comando:

sudo apt-get install yajl-tools

Uso:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json_reformat

Para XML:

Si usa * nix con el entorno Debian / Gnome, instale libxml2-utils :

sudo apt-get install libxml2-utils

Uso:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | xmllint --format -

o instalar tidy :

sudo apt-get install tidy

Uso:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | tidy -xml -i -

Guardando la respuesta de curl en un archivo

curl http://hostname/resource >> /path/to/your/file

o

curl http://hostname/resource -o /path/to/your/file

Para una descripción detallada del comando curl, pulsa:

man curl

Para obtener detalles sobre las opciones / interruptores del comando curl, pulsa:

curl -h


Creo que Amith Koujalgi es correcta, pero también, en los casos en que las respuestas del servicio web están en JSON, podría ser más útil ver los resultados en un formato JSON limpio en lugar de una cadena muy larga. Sólo tiene que añadir | grep} | Python -mjson.tool hasta el final de los comandos curl aquí hay dos ejemplos:

GET enfoque con resultado JSON

curl -i -H "Accept: application/json" http://someHostName/someEndpoint | grep }| python -mjson.tool

Enfoque POST con resultado JSON

curl -X POST -H "Accept: Application/json" -H "Content-Type: application/json" http://someHostName/someEndpoint -d ''{"id":"IDVALUE","name":"Mike"}'' | grep }| python -mjson.tool