Erlang Can';t获取httpc basic auth示例以使用https
这是我第一次使用erlang,我决定尝试为API编写一个包装器。以下是到目前为止我得到的信息:-Erlang Can';t获取httpc basic auth示例以使用https,erlang,Erlang,这是我第一次使用erlang,我决定尝试为API编写一个包装器。以下是到目前为止我得到的信息:- -module(my_api_wrapper). %% API exports -export([auth/0]). auth() -> application:start(inets), application:start(ssl
-module(my_api_wrapper).
%% API exports
-export([auth/0]).
auth() ->
application:start(inets),
application:start(ssl),
AuthStr = base64:encode_to_string("username:password"),
Method = post,
URL = "https://api.endpoint.com/auth",
Header = [{"Authorization", "Basic " ++ AuthStr}],
Type = "application/json",
Body = "{\"grant_type\":\"client_credentials\"}",
HTTPOptions = [],
Options = [],
httpc:request(Method, {URL, Header, Type, Body}, HTTPOptions, Options).
在shell上测试时,我得到一个错误:-
{error,{failed_connect,[{to_address,{"api.endpoint.com",
443}},
{inet,[inet],closed}]}}
我不知道我做错了什么!我正在运行这个版本的Erlang/OTP19[erts-8.0.2]。感谢您的帮助。对于任何可能有所帮助的人,这正是我为使原始问题中的代码正常工作所做的更改,感谢Dogbert的上述评论
-module(my_api_wrapper).
%% API exports
-export([auth/0]).
auth() ->
application:start(inets),
application:start(ssl),
AuthStr = base64:encode_to_string("username:password"),
Method = post,
URL = "https://api.endpoint.com/auth",
Header = [{"Authorization", "Basic " ++ AuthStr}],
Type = "application/json",
Body = "{\"grant_type\":\"client_credentials\"}",
% ADD SSL CONFIG BELOW!
HTTPOptions = [{ssl,[{versions, ['tlsv1.2']}]}],
Options = [],
httpc:request(Method, {URL, Header, Type, Body}, HTTPOptions, Options).
这个问题的答案有用吗:?是的!这帮我把它修好了。谢谢你的帮助!一般提示:我建议使用
{ok,{}=application:sure_all_started(ssl)
——请OTP处理应用程序依赖项,并确保应用程序实际启动。