【问题标题】:HTTPoison request failes on specific machine but works in another machineHTTPoison 请求在特定机器上失败,但在另一台机器上工作
【发布时间】:2020-09-01 05:08:57
【问题描述】:

我正在用 HTTPoison 做一篇文章,在一台机器上一切正常,但在另一台机器上,使用相同的代码,具有相似的环境参数。

HTTPoison.post!("https://remote_api", "", [{"X-TOKEN", System.get_env("API_TOKEN"}, {"Content-Type", "application/json"}])

失败了

** (HTTPoison.Error) {:options, {:sslv3, {:versions, [:"tlsv1.2", :"tlsv1.1", :tlsv1, :sslv3]}}}
    (httpoison) lib/httpoison.ex:128: HTTPoison.request!/5

两台机器都设置了相同的运行centos7,但我在一台机器上得到了预期的结果,但在另一台机器上却没有。我不确定我做错了什么

降级到 OTP 22 已修复此问题,感谢 Aleksei Matiushkin。

【问题讨论】:

  • :sslv3 可能是问题所在。请检查两台机器的 OTP 版本并在此处发布结果(例如,通过运行 erl。)
  • ``` Erlang/OTP 23 [erts-11.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1 ] [hipe] Eshell V11.0 (abort with ^G) ``` 都返回相同的结果
  • SSL 3.0 的支持已从Erlang 23.0 中完全删除。 erlang.org/news/140 Elixir 有哪些版本?只有1.10.3 完全支持OTP23。使用iex 进行测试。
  • 哎呀,现在这是一些有用的信息,使用 elixir 1.9.4

标签: http elixir phoenix-framework httpoison


【解决方案1】:

我遇到了同样的问题,看起来 hackney 中的 this fix 可以解决问题。已合并到master,但尚未发布。

与此同时,降级到 OTP 22 是一个很好的解决方案。

【讨论】:

    【解决方案2】:

    目前这对我有用:

    {:hackney, git: "https://github.com/benoitc/hackney.git", branch: "master", override: true}
    

    【讨论】:

      【解决方案3】:

      hackney 升级到版本1.16 对我有用。

       defp deps do
          [
            ...
            {:httpoison, "~> 1.6"},
            {:hackney, "~> 1.16"}
          ]
        end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多