2011-07-22 9 views
0

私はFutonやCurlを使わずに新しいCouchDBユーザーを作成する方法を探しています...まっすぐなhttp要求です。FutonまたはCurlを使用せずに新しいCouchDBユーザーを作成する方法は?

私が見つけたある方法(http://stackoverflow.com/questions/3456256/error-creating-user-in-couchdb-1-0)は、http:// localhost:5984/_usersにJSONドキュメントを置きます/org.couchdb.user:username "を使用してユーザーを作成します。 = 405メソッドは許可されていません

をcfhttp.StatusCode cfhttp.filecontent

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

が、私は戻ってソファーから、次を受信し続ける:

は、私は次の試みてきました=メソッドは許可されません。リクエストされたメソッドPUTはURL /_users/org.couchdb.user:xyz_companyには許可されていません

ご意見やご提案はありますか?

UPDATE:

私はマルチェロの提案に基づいて私のコードを編集しました。私はまだ同じ405 Method Not Allowedエラーを受け取ります。ここにコードがあります:

<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

3つの注釈: '' 'name'属性は無視されます。本文では、 '' id ''は' '_id" 'でなければなりません。 Content-Typeは 'application/json; charset = UTF-8'でなければなりません。 –

答えて

1

カールは、ストレートhttp要求です。そのようなリクエストを作成するには他にもいろいろな方法があります。別のプログラム(例:wget)を使用できます。自分で書くこともできます(PythonやV8やRhinoのJavaScriptなど)。

+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 'オプションを追加する方法がわかりませんか? –

関連する問題