2013-08-19 16 views
12

eseguendo il seguente comando dalla riga di comando di Windows utilizzando cURL tentativo di inserire un nuovo documento a un database di CouchDB esistente (chiamato test) non riesce:CouchDB comando CURL di Windows riga non valido JSON

curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"valid":"json"} 

restituisce l'errore:

{"error":"bad_request","reason":"invalid_json"} 

Il JSON è valido, quindi cosa fornisce?

risposta

11

La risposta è correlata alla formattazione della stringa JSON sulla riga di comando. Anche se è corretto JSON quando lo scrivi, la riga di comando, a quanto pare, deve riformattarlo prima di inviarlo (forse qualcun altro può spiegare perché lo fa in modo più dettagliato). Per risolvere questo problema devi sfuggire alle tue quotazioni in la riga di comando in questo modo:

curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"""valid""":"""json"""} 

Vedere le virgolette supplementari? Questo dovrebbe funzionare e restituire "ok: true" con un id e un numero di revisione.

+1

Il modo più semplice per eseguire questa operazione è utilizzare le virgolette singole:' -d '{"valido": "json"}' ' –

+3

In realtà le virgolette singole continuano a generare errori json non validi quando utilizzo l'arricciatura da un prompt della riga di comando di Windows. – skinneejoe

+2

Utilizzare stucco contro macchine remote o cygwin o gitbash se si esegue localmente su un computer Windows. Ecco il mio cheat sheet CouchDB http://macgyverdev.blogspot.se/2013/12/couchdb-on-linux-mint.html –

3

Devi citare anche l'intera istruzione per supportare spazi come: -d "{\" title \ ": \" Non c'è niente da perdere \ ", \" artista \ ": \" Foo Fighters \ " } "

Problemi correlati