2011-11-15 27 views
26

Estoy en mi terminal y deseo enviar una solicitud POST a una URL determinada. He probado esto con un cliente REST, así que sé que los parámetros funcionan.Comando curl para emitir una solicitud POST

lo que permite decir Quiero publicar los siguientes parámetros:

  • nombre de usuario = tony
  • password = secreta

Para mi URL: https://exmaple.com/login/

He intentado lo siguiente rizo comando en mi Terminal (estoy usando OSX Lion)

curl --data "username=tony&password=secret" http://exmaple.com/login/ 

Obtengo un 500 Server Error desde el servidor, así que ahora estoy pensando en algo que podría ser diferente entre el cliente REST y el comando curl.

Gracias por su ayuda

Actualización: estoy usando un servicio HTTPS. ¿Tengo que ajustar mi comando curl para dar cuenta de esto?

+2

Utilice la opción --trace-ascii para ver los datos que pasan por el cable y compararlos con lo que envía el cliente REST. – Dan

+0

Gracias por el tipp. Mientras estaba haciendo el seguimiento, me di cuenta de que estoy usando HTTPS. Entonces, ¿podría ser que deba tomar algunas precauciones para dar cuenta de eso? – Besi

+1

HTTPS no debe hacer una diferencia en un rizo instalado correctamente. En el peor de los casos, puede obtener un error de validación del certificado que puede solucionar (¡temporalmente!) Con la opción -k. – Dan

Respuesta

23

Prueba este

curl -F username=tony -F password=secret http://exmaple.com/login/ 

-F (reference) probablemente debería hacer lo mismo que --Hojas? Posible el problema está en la aplicación web.

¿Quizás la aplicación a la que estás golpeando usa autenticación básica para autenticación? Pruebe este:

curl --user name:password http://exmaple.com/login/ 
+5

-F hace una publicación de varias partes, mientras que --data hace una aplicación estándar/x-www-form-urlencoded, por lo que hay una buena posibilidad de que si uno no funciona, el otro lo hará. – Dan

+0

debería haberlo sabido; Corté y pegué ese comando de un artículo en mi blog sobre cargas de publicaciones múltiples. – russau

+0

Bien, creo que hay un problema con mi servidor que hace la autenticación. Sin embargo, todavía me resulta curioso que funcione sin problemas con el cliente Rest. ¿Tal vez tengo que hacer un manejo especial de cookies? – Besi

Cuestiones relacionadas