我有这个:
HTTPoison.start
case HTTPoison.get("some url") do
{:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
IO.puts(body)这会产生一个例外:
Generated escript grex_cli with MIX_ENV=dev
** (ArgumentError) argument error
(stdlib) :io.put_chars(#PID<0.49.0>, :unicode, [<<60, 33, 100, 111,..... 58, ...>>, 10])
(elixir) lib/kernel/cli.ex:76: anonymous fn/3 in Kernel.CLI.exec_fun/2我怎样才能读懂身体并打印出来?
发布于 2016-10-20 16:00:05
由于这里的IO.puts是无效的UTF-8数据,所以body失败了.如果要将非UTF-8二进制文件写入stdout,可以使用IO.binwrite而不是IO.puts。
IO.binwrite(body)发布于 2017-09-21 11:06:49
当我得到压缩的内容时,我得到了这个错误。
所以在打印之前我把它解压缩了:
IO.puts :zlib.gunzip(body)您还可以在unzip:https://github.com/edgurgel/httpoison/issues/81#issuecomment-219920101之前检查body是否被压缩。
https://stackoverflow.com/questions/40155304
复制相似问题