0

我正在使用 HTTPoison 下载图像,但我无法弄清楚如何从响应的正文中获取图像。我需要将它作为 base64 编码字符串放入 annotate_image 以传递给另一个 API。但是,我无法弄清楚身体是什么。甚至 IO.puts 正文也会抛出一个错误,它说我用 3 个参数调用它,我可以清楚地看到图像是这些参数之一,但我无法在我的 annotate_image 函数中提取它。我尝试了“body[1]”、body(1)、body.1、body.get(1) 和其他变体,没有任何效果。如何确定结构体的类型及其成员变量/参数是什么?

图像是参数 1

def get_image(url) do
  finishedUrl = Enum.join(url, "/")

  finishedUrl = String.replace(finishedUrl, "/", "//", global: false)
  IO.puts "Printing url part 2"
  IO.puts finishedUrl
  case HTTPoison.get(finishedUrl) do
    {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
      annotate_image(body)
    {:ok, %HTTPoison.Response{status_code: 404}} ->
      IO.puts "Not found :("
    {:error, %HTTPoison.Error{reason: reason}} ->
      IO.inspect reason
  end
  IO.puts "get_image ended here"
end
4

1 回答 1

1

正文只是一个二进制文件,假设您确实在此处下载图像文件,其中将包含文件的内容。您可以通过将其保存到具有适当扩展名的文件(.png例如,但这取决于实际文件格式)并在您的计算机上打开它来验证这一点。根据您想要对图像执行的操作,您可能需要一个图像处理库来在您的程序中处理它。

于 2020-04-23T22:58:28.637 回答