2011-11-15 15 views
26

Sono nel mio terminale e desidero inviare una richiesta POST a un determinato URL. Ho provato questo con un client REST quindi so che i parametri funzionano.Comando di arricciatura per l'emissione di una richiesta POST

Allora supponiamo voglio postare i seguenti parametri:

  • username = tony
  • password = secret

A mio URL: https://exmaple.com/login/

Ho provato quanto segue ricciolo comando nel mio terminale (sto usando OSX Lion)

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

Ricevo un 500 Server Error dal server, quindi ora sto pensando a qualcosa che potrebbe essere diverso tra il client REST e il comando di arricciatura.

Grazie per il vostro aiuto

Update: Sto usando un servizio https. Devo regolare il comando del ricciolo per tener conto di ciò?

+2

Utilizzare l'opzione --trace-ascii per visualizzare i dati che vanno sul filo e confrontarli con ciò che il client REST invia. – Dan

+0

Grazie per il tipp. Mentre stavo facendo la traccia mi sono reso conto che sto usando HTTPS. Quindi potrebbe essere che ho bisogno di prendere alcune precauzioni per renderlo conto? – Besi

+1

HTTPS non dovrebbe fare la differenza su un ricciolo installato correttamente. Nel peggiore dei casi, potresti ricevere un errore di convalida del certificato che puoi aggirare (temporaneamente!) Con l'opzione -k. – Dan

risposta

23

Prova questo

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

-F (reference) probabilmente dovrebbe fare lo stesso come --data? Possibile il problema è nella webapp.

Forse l'app che si sta utilizzando utilizza l'autenticazione di base per l'autenticazione? Prova questo:

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

-F fa un post multipart mentre --data fa un'applicazione standard/x-www-form-urlencoded, quindi c'è una buona possibilità se uno non funziona che l'altro lo farà. – Dan

+0

avrei dovuto saperlo; Ho tagliato e incollato quel comando da un articolo sul mio blog su caricamenti di post multipart! – russau

+0

Ok, penso che ci sia un problema con il mio server che esegue l'autenticazione. Tuttavia trovo ancora curioso che funzioni senza problemi con il client Rest. Devo forse fare un trattamento speciale con i cookie? – Besi

Problemi correlati