是否有可能获得响应 body 参数?
Is it possible to get reponse body arguments?
我正在使用 HTTPoison 下载图像,但我不知道如何从响应 body 中获取图像。我需要将它作为 base64 编码的字符串放入 annotate_image 以传递给另一个 API。但是,我不知道 body 是什么。即使 IO.puts body 也会抛出一个错误,它说我用 3 个参数调用它,我可以清楚地看到图像是这些参数之一,但我无法在我的 annotate_image 中提取它功能。我试过 "body[ 1 ]"、body(1)、body.1、body.get(1) 和其他变体,但没有任何效果。我怎样才能弄清楚 body 是什么类型的结构以及它的成员 variables/params 是什么?
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
正文只是一个二进制文件,假设您确实在此处下载图像文件,其中将包含文件的内容。您可以通过将其保存到具有适当扩展名的文件(例如 .png
,但这取决于实际文件格式)并在您的计算机上打开它来验证这一点。根据您想对图像执行的操作,您可能需要一个图像处理库来在您的程序中处理它。
我正在使用 HTTPoison 下载图像,但我不知道如何从响应 body 中获取图像。我需要将它作为 base64 编码的字符串放入 annotate_image 以传递给另一个 API。但是,我不知道 body 是什么。即使 IO.puts body 也会抛出一个错误,它说我用 3 个参数调用它,我可以清楚地看到图像是这些参数之一,但我无法在我的 annotate_image 中提取它功能。我试过 "body[ 1 ]"、body(1)、body.1、body.get(1) 和其他变体,但没有任何效果。我怎样才能弄清楚 body 是什么类型的结构以及它的成员 variables/params 是什么?
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
正文只是一个二进制文件,假设您确实在此处下载图像文件,其中将包含文件的内容。您可以通过将其保存到具有适当扩展名的文件(例如 .png
,但这取决于实际文件格式)并在您的计算机上打开它来验证这一点。根据您想对图像执行的操作,您可能需要一个图像处理库来在您的程序中处理它。