しばらくの間、これに頭を悩ませていました...ローカルマシンでcouchdbを取得して投稿することはできますが、https経由の接続を必要とするCloudantの使用に切り替えたいと考えています。
私は何が起こっているのかを理解したいので、たとえばカウチビームではなく、当面は httpc などを使用することを好みますが、SSL を介した接続に関する Erlang のドキュメントを理解できないようであり、例はプレーンな HTTP を介しています.. . Cloudant には、Erlang 固有のドキュメントもないようです。
Erlang で HTTPS リクエストを行うにはどうすればよいかというトピックを見てきましたが、与えられた例がうまくいきません - 次のエラー レポートが表示されます。
ฐ=ERROR REPORT==== 10-May-2011::10:40:26 ===
** Generic server <0.60.0> terminating
** Last message in was {connect_and_send,
{request,#Ref<0.0.0.50>,<0.31.0>,0,https,
{"playground.cloudant.com",443},
"/",[],get,
{http_request_h,undefined,"keep-alive",
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,
undefined,undefined,
"playground.cloudant.com",undefined,
undefined,undefined,undefined,undefined,
undefined,undefined,undefined,undefined,[],
undefined,undefined,undefined,undefined,
"0",undefined,undefined,undefined,
undefined,undefined,undefined,[]},
{[],[]},
{http_options,"HTTP/1.1",infinity,true,
{ossl,[{verify,0}]},
undefined,false,infinity,false},
"https://playground.cloudant.com",[],none,[],
1305020425911,undefined,undefined}}
** When Server state == {state,undefined,undefined,undefined,undefined,
undefined,undefined,
{[],[]},
{[],[]},
undefined,[],nolimit,nolimit,
{options,
{undefined,[]},
0,2,5,120000,2,disabled,false,inet,default,
default,[]},
{timers,[],undefined},
httpc_manager,undefined}
** Reason for termination ==
** {{badmatch,{error,no_ssl_server}},
[{ssl,old_connect,4},
{httpc_handler,connect_and_send_first_request,3},
{httpc_handler,handle_call,3},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]}
そしてErlangシェルがハングします...
Erlang シェルに入力しているコードは次のとおりです。
Running Erlang
Eshell V5.8.3 (abort with ^G)
1> inets:start().
ok
2> ssl:start().
ok
3> httpc:request(head, {"https://playground.cloudant.com", []}, [{ssl,[{verify,0}]}], []).
3行目では、次のことも試しました。
3> httpc:request(head, {" https://playground.cloudant.com ", []}, [], [])。
3> httpc:request(get, {" https://playground.cloudant.com ", []}, [{ssl,[{verify,0}]}], [])。
3> httpc:request(get, {" https://playground.cloudant.com ", []}, [], [])。
ブラウザからhttps://playground.cloudant.comに問題なく接続できます。
私は明らかにここに何かが欠けていますが、私の人生では何がわからないのですか。SSL に関して何か必要なことはありますか? 特定の場所に配置する必要がある構成ファイルはありますか? どんな助けでも大歓迎です!