标签: httpoison

如何将可信证书添加到HTTPPoison/hackney?

当我尝试:

HTTPoison.get! "https://facebook.com"
Run Code Online (Sandbox Code Playgroud)

我明白了:

** (HTTPoison.Error) {:tls_alert, 'unknown ca'}
[error] SSL: :certify: ssl_handshake.erl:1606:Fatal error: unknown ca

    (httpoison) lib/httpoison.ex:66: HTTPoison.request!/5
Run Code Online (Sandbox Code Playgroud)

这是预期的,因为在我的公司,我需要相信防火墙的证书出来.

我信任系统范围内的证书(.cer文件),这就是为什么wget在访问httpsURL 时不会给我ssl错误.但似乎hackney/HTTPoison忽略了这种配置.

如何让HTTPoison/hackney将证书识别为可信证书?

erlang ssl elixir httpoison

7
推荐指数
2
解决办法
1764
查看次数

获取池数

我正在使用 HTTPoison 和 Hackney 池:

:hackney_pool.child_spec(:start, [checkout_timeout: ..., max_connections: 100]),
:hackney_pool.child_spec(:trigger, [checkout_timeout: ..., max_connections: 100]),
:hackney_pool.child_spec(:result, [checkout_timeout: ..., max_connections: 100])

...

HTTPoison.get('...', [...], [
...,
hackney: [pool: :start]
])
Run Code Online (Sandbox Code Playgroud)

有什么方法可以匹配运行/排队连接的数量并实时监控它们?谢谢

elixir httpoison

5
推荐指数
1
解决办法
423
查看次数

HTTPoison.request!/5 以奇怪的原因引发 %HTTPoison.Error

升级到 Elixir 1.10.3 后,调用HTTPoison.request!()HTTPoison.Errorwithid: nil{:options, {:sslv3, {:versions, [:"tlsv1.2", :"tlsv1.1", :tlsv1, :sslv3]}}}. 什么可能导致这种情况?我在网上看到的所有例子都假设原因是一个原子。

elixir httpoison

5
推荐指数
1
解决办法
684
查看次数

Elixir 从shoutcast 中获取元数据

我想制作一个程序,该程序将显示来自互联网广播流(SomaFM)的当前正在播放的歌曲。我在 Elixir 中使用 HTTPoison 库。但我没有得到回应。它只是挂起。

我正在使用以下代码:

HTTPoison.start
url = "http://ice1.somafm.com/lush-128-mp3"
headers = [{"Icy-Metadata", "1"}]
with {:ok, %HTTPoison.Response{body: body}} <- HTTPoison.get(url, headers) do
  body |> Poison.decode! |> IO.inspect
  else
    {:error, %HTTPoison.Error{reason: reason}} ->
      IO.inspect reason  
  end
end
Run Code Online (Sandbox Code Playgroud)

我实际上对 elixir 很陌生,所以如果有人能帮助我,我将非常感激。

shoutcast elixir httpoison

4
推荐指数
1
解决办法
298
查看次数

模式匹配HTTpoison反应药剂

有什么方法可以模式匹配的错误响应httpoison?我在做这个

case HTTPoison.get!(url, [], []) do
  %HTTPoison.Error{reason: reason} ->
    IO.inspect "Media: #{reason}!"
    :timer.sleep(:timer.seconds(3))
    do_loop(starting, ending, interval, camera_exid)
  response ->
    upload(response.status_code, response.body, starting, camera_exid)
    do_loop(starting + interval, ending, interval, camera_exid)
end
Run Code Online (Sandbox Code Playgroud)

但是它没有抓住timeout并给我错误

** (HTTPoison.Error) :timeout
    (httpoison) lib/httpoison.ex:66: HTTPoison.request!/5
    (extractor) lib/snapshot/snap_extractor.ex:67: Extractor.SnapExtractor.do_loop/4
       (elixir) lib/enum.ex:651: Enum."-each/2-lists^foreach/1-0-"/2
       (elixir) lib/enum.ex:651: Enum.each/2
Run Code Online (Sandbox Code Playgroud)

我认为这样做是错误的。.有什么建议吗?

elixir httpoison

2
推荐指数
1
解决办法
727
查看次数

在已定义的接口IP地址上启动erlang/elixir

我正在使用elixir对我的机器上的主机进行一些XMLRPC查询,该主机只接受来自127.0.xy的调用,其中x和y可以配置,但ip不能是127.0.0.1.

curl除非我添加标志,否则对此主机的简单请求将失败--interface 127.0.x.y.

如何使用不同于127.0.0.1的给定接口ip启动我的elixir应用程序?

我用来发送请求的库是HTTPoison,如果这有用的话.

erlang networking elixir httpoison

2
推荐指数
1
解决办法
122
查看次数

httpoison - 响应正文显示乱码文本而不是HTML

如果我尝试:

url = "https://www.economist.com/news/finance-and-economics/21727073-economists-struggle-work-out-how-much-free-economy-comes-cost"    
{:ok, %HTTPoison.Response{status_code: 200, body: body}} = HTTPoison.get(url)
IO.binwrite body
Run Code Online (Sandbox Code Playgroud)

我在控制台中看到乱码文本(而不是html).但如果我在网页上查看源代码,我会在那里看到HTML.我究竟做错了什么?

PS:它与js http客户端(axios.js)工作正常,不知道为什么它不适用于httpoison

utf-8 elixir httpoison

2
推荐指数
1
解决办法
278
查看次数

HTTPoison 在标头中使用 Authorization 发出 post 请求。

我正在尝试使用HTTPoison.

我想传递带有标题的 json 数据,其中包含"Authorization": Bearer #{token}.

为了实现这一点,我已经尝试过,

headers = [{"Authorization": "Bearer #{token}"}, {"Content-Type", "application/json"}] 
body = 
 %{
  id: id,
  name: name,
  ...      
 }
HTTPoison.post(url, body, headers)
Run Code Online (Sandbox Code Playgroud)

但它会触发一个语法错误,即syntax error before: "Authorization". 我一直在寻找正确的标题语法,但仍然没有运气..

什么是正确的语法headers

提前致谢..

header elixir httpoison

2
推荐指数
1
解决办法
3119
查看次数

使用HTTPoison初始化模块属性

我正在尝试像这样初始化模块属性

  response = HTTPoison.get! url
  {:ok, response} = Poison.decode(response.body)
  @attr response
Run Code Online (Sandbox Code Playgroud)

我以前用一个文件来做,就像这样:

  @external_resource file = Path.join([__DIR__, "file.txt"])
  Module.register_attribute __MODULE__, :attr, accumulate: true

  for line <- File.stream!(file, [], :line) do
    @attr line
    ...
Run Code Online (Sandbox Code Playgroud)

使用HTTPoison并获取API的响应是否一样?我收到此错误:

== Compilation error in file lib/module.ex ==
** (ArgumentError) argument error
    (stdlib) :ets.lookup_element(:hackney_config, :mod_metrics, 2)
    /project/deps/hackney/src/hackney_metrics.erl:27: :hackney_metrics.get_engine/0
    /project/deps/hackney/src/hackney_connect.erl:69: :hackney_connect.create_connection/5
    /project/deps/hackney/src/hackney_connect.erl:37: :hackney_connect.connect/5
    /project/deps/hackney/src/hackney.erl:316: :hackney.request/5
    lib/httpoison/base.ex:630: HTTPoison.Base.request/9
    lib/httpoison.ex:66: HTTPoison.request!/5
    lib/module.ex:4: (module)
Run Code Online (Sandbox Code Playgroud)

elixir httpoison

2
推荐指数
1
解决办法
758
查看次数

iex&gt; 如何导入 HTTPoison

我是 Elixir 的新手。我希望它与 Python 或 R 类似,可以在其中下载模块并保持最新状态而无需太多努力。

我已经创建了一个混合项目来使用 HTTPoison,但我真的只是想从解释器中尝试 HTTPoison。

$ iex
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]

Interactive Elixir (1.9.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> import HTTPoison
** (CompileError) iex:1: module HTTPoison is not loaded and could not be found

iex(1)>
Run Code Online (Sandbox Code Playgroud)

elixir httpoison

2
推荐指数
1
解决办法
1008
查看次数

标签 统计

elixir ×10

httpoison ×10

erlang ×2

header ×1

networking ×1

shoutcast ×1

ssl ×1

utf-8 ×1