首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取HTTPoison返回的正文

无法读取HTTPoison返回的正文
EN

Stack Overflow用户
提问于 2016-10-20 13:05:04
回答 2查看 682关注 0票数 0

我有这个:

代码语言:javascript
复制
HTTPoison.start
case HTTPoison.get("some url") do
  {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
    IO.puts(body)

这会产生一个例外:

代码语言:javascript
复制
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

我怎样才能读懂身体并打印出来?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-20 16:00:05

由于这里的IO.puts是无效的UTF-8数据,所以body失败了.如果要将非UTF-8二进制文件写入stdout,可以使用IO.binwrite而不是IO.puts

代码语言:javascript
复制
IO.binwrite(body)
票数 4
EN

Stack Overflow用户

发布于 2017-09-21 11:06:49

当我得到压缩的内容时,我得到了这个错误。

所以在打印之前我把它解压缩了:

代码语言:javascript
复制
IO.puts :zlib.gunzip(body)

您还可以在unziphttps://github.com/edgurgel/httpoison/issues/81#issuecomment-219920101之前检查body是否被压缩。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40155304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档