2011-07-22 6 views
0

Je cherche un moyen de créer un nouvel utilisateur CouchDB sans utiliser Futon ou Curl ... juste une requête http directe.Comment créer un nouvel utilisateur CouchDB sans Futon ou Curl?

Un moyen que j'ai trouvé (http://stackoverflow.com/questions/3456256/error-creating-user-in-couchdb-1-0) met un doc JSON à "http: // localhost: 5984/_users /org.couchdb.user:username "pour créer un utilisateur.

J'ai essayé les suivantes:

<cfhttp url="http://127.0.0.1/_users/org.couchdb.user:xyz_company" port="5984" method="PUT" username="#variables.couch_username#" password="#variables.couch_password#"> 
<cfhttpparam type="header" name="Content-Type" value="application/json"> 
<cfhttpparam type='body' name='org.couchdb.user:xyz_company' value='{"roles":[],"name":"xyz_company","salt":"3B33BF09-26B9-D60A-8F469D01286E9590","id":"org.couchdb.user:xyz_company","password_sha":"096EA41A5A81EA1507F2C6F7EDC364C0B82694AC","type":"user"}'> 

je continue à recevoir les éléments suivants dos de canapé:

cfhttp.statuscode = 405 Méthode non autorisée cfhttp.filecontent = Méthode non autorisée La méthode demandée PUT n'est pas autorisée pour l'URL /_users/org.couchdb.user:xyz_company

Des idées ou des suggestions?

MISE À JOUR:

J'édité mon code basé sur les suggestions de Marcello. Je reçois toujours la même erreur 405 Méthode non autorisée. Voici le code maintenant:

<cfhttp url="http://127.0.0.1/_users/org.couchdb.user:xyz_company" port="5984" method="PUT" username="#variables.couch_username#" password="#variables.couch_password#"><cfhttpparam type="header" name="Content-Type" value="application/json;charset=UTF-8"><cfhttpparam type='body' value='{"roles":[],"name":"xyz_company","salt":"3B33BF09-26B9-D60A-8F469D01286E9590","_id":"org.couchdb.user:xyz_company","password_sha":"096EA41A5A81EA1507F2C6F7EDC364C0B82694AC","type":"user"}'></cfhttp> 

Autres suggestions? Je vous remercie!

+0

Trois notes: dans '' l'attribut 'name' est ignoré. Dans le corps, '" id "' devrait être '" _id "'. Content-Type doit être 'application/json; charset = UTF-8'. –

Répondre

1

curl est une requête http directe. Il existe d'autres façons de créer de telles requêtes: vous pouvez les créer avec votre navigateur; vous pouvez utiliser un programme différent (par exemple, wget); ou même écrivez les vôtres (par exemple en Python ou en JavaScript avec V8 ou Rhino).

+0

Oui, vous avez raison. J'ai besoin de créer un utilisateur sans Futon ou Curl. J'ai essayé avec le code ci-dessus avec le message d'erreur indiqué. Des suggestions pour corriger le code ci-dessus? Je vous remercie. –

+0

Si le programme curl fonctionne, relancez-le avec '-v', puis exécutez votre CFHTTP avec l'option équivalente, voir ce qui fait la différence. Si Marcello a raison et que les attributs 'name' sont ignorés dans les paramètres du corps, changez la valeur en' org.couchdb.user: xyz_company = {"roles": [], "name ...'. – Malvolio

+0

J'ai essayé d'ajouter 'org .couchdb.user: xyz_company = 'au corps avec la même erreur 405. Vous ne savez pas comment ajouter l'option' -v 'à mon code? –

Questions connexes