一段时间以来,我一直在努力解决这个问题……我可以在本地计算机上获取并发布到 couchdb,但现在我想切换到使用需要通过 https 进行连接的 Cloudant。
我想了解发生了什么,所以暂时更喜欢使用 httpc 或类似的东西,而不是说,couchbeam 但我似乎无法深入了解有关通过 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 shell 挂起……
这是我在 Erlang shell 中输入的代码:
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 做些什么吗?我应该把任何配置文件放在一个特定的地方吗?任何帮助都感激不尽!