为什么在erlang 21中而不是erlang 20中出现代码错误?

时间:2018-10-04 01:32:50

标签: erlang

当我在Erlang 21中执行以下操作时,出现错误。

inets:start(),
ssl:start(),
httpc:request(post,
             {"https://sandbox.itunes.apple.com/verifyReceipt", [], "application/json", []},
             [], []).

错误是:

=INFO REPORT==== 3-Oct-2018::19:32:47.728491 ===
TLS client: In state hello received SERVER ALERT: Fatal - Handshake Failure

{error,{failed_connect,[{to_address,{"sandbox.itunes.apple.com",443}},
                        {inet,[inet],{tls_alert,"handshake failure"}}]}}

当我在Erlang 20中执行相同操作时,它就可以正常工作。

有人可以告诉我什么地方可能出问题吗?

1 个答案:

答案 0 :(得分:9)

进行了一些研究,发现由于comment

  

安全性:   从SSL和SSH中的默认密码中删除了“不安全”密码。

您需要手动配置SSL(启用密码)

EnabledCiphers = ssl:cipher_suites(all, 'tlsv1.2'),
Options = [{ciphers, EnabledCiphers}],

httpc:request(post,{"https://sandbox.itunes.apple.com/verifyReceipt",
[],"application/json", []}, [{ssl,Options}], []).