2011-11-17 8 views
20

Sto creando un servizio Web per un'applicazione Web e mi piacerebbe un semplice strumento per testarlo mentre sto sviluppando. Ho provato alcuni plug-in di Firefox (Poster, 'Client REST'), e anche se questi funzionano bene non sono stato in grado di caricare i file con loro.Come testare il servizio web utilizzando l'arricciatura della riga di comando

Inoltre, preferirei avere uno strumento da riga di comando che posso utilizzare per scrivere facilmente una serie di test di integrazione per questo servizio Web e che posso inviare ai consumatori di questo servizio Web come esempio.

so che curl possono lavorare per questo, ma vorrebbero alcuni esempi, in particolare intorno autenticazione (utilizzando il protocollo HTTP di base) e upload di file.

risposta

15

Oltre alle risposte già esistenti è spesso desiderato per formattare l'output REST (tipicamente JSON e XML manca indentazione). Prova questo:

$ curl https://api.twitter.com/1/help/configuration.xml | xmllint --format - 
$ curl https://api.twitter.com/1/help/configuration.json | python -mjson.tool 

Testato su Ubuntu 11.0.4/11.10.

Un altro problema è il tipo di contenuto desiderato. Twitter usa .xml/.json estensione, ma riposo più idiomatica richiederebbe Accept intestazione:

$ curl -H "Accept: application/json" 
+0

Grazie per le aggiunte. –

+0

Viene visualizzato questo errore quando si tenta di utilizzare l'esempio: 'xmllint' non è riconosciuto come comando interno o esterno, programma eseguibile o file batch. Forse qualcosa è cambiato negli ultimi 5 anni? – influent

+0

@influent, questo significa che xmllint non è installato –

19

Rispondere alla mia domanda.

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 

pubblicazione di un file e il parametro aggiuntivo

curl -X POST -F '[email protected]/filepath/filename' \ 
    -F 'extra_param_name=extra_param_value' --basic --user username:password \ 
    https://www.example.com/mobile/resource 
2

Dalla documentazione sulla http://curl.haxx.se/docs/httpscripting.html:

autenticazione HTTP

curl --user name:password http://www.example.com 

mettere un file su un server HTTP con l'arricciatura:

curl --upload-file uploadfile http://www.example.com/receive.cgi 

Invia dati postali con ricciolo:

curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi 
Problemi correlati