2011-07-22 25 views
0

我正在尋找一種方法來創建一個新的CouchDB用戶而不使用Futon或Curl ...只是一個直接的http請求。如何創建沒有蒲團或捲曲的新CouchDB用戶?

我找到一種方法(http://stackoverflow.com/questions/3456256/error-creating-user-in-couchdb-1-0)把JSON文件放到「http:// localhost:5984/_users /org.couchdb.user:username「創建一個用戶。

我已經嘗試以下操作:

<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"}'> 

我不斷收到以下從沙發後面:

cfhttp.statuscode = 405不允許的方法 cfhttp.filecontent =不允許的方法;請求的方法PUT不允許用於URL /_users/org.couchdb.user:xyz_company

任何想法或建議?

UPDATE:

我編輯基於裏皮的建議,我的代碼。我仍然收到相同的405方法不允許的錯誤。這裏是代碼現在:

<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> 

還有更多建議嗎?謝謝!

+0

三個注意事項:在''name'屬性被忽略。在主體中,''id「'應該是''_id」'。內容類型應該是'application/json; charset = UTF-8'。 –

回答

1

curl 一個直接的http請求。還有其他方式可以創建這樣的請求:您可以使用瀏覽器製作它們;您可以使用不同的程序(例如wget);甚至可以編寫自己的代碼(例如在Python中或在JavaScript中使用V8或Rhino)。

+0

是的,你是對的。我需要創建一個沒有Futon或Curl的用戶。我已經用上面的代碼與所述錯誤信息一起嘗試過了。任何建議來糾正上面的代碼?謝謝。 –

+0

如果curl程序正常運行,用'-v'重新運行它,然後用相同的選項運行你的CFHTTP,看看有什麼不同。如果Marcello是正確的,並且'name'屬性在主體參數中被忽略,則將該值更改爲'org.couchdb.user:xyz_company = {「roles」:[],「name ...' – Malvolio

+0

我嘗試添加'org .couchdb.user:xyz_company ='給405錯誤的主體。不確定如何將'-v'選項添加到我的代碼中? –