在Elixir浏览器中下载chuncked文件失败。

问题描述 投票:0回答:1

很明显,我的代码中似乎缺少了一些东西。我发送的是一个分块的HTTP响应,内容类型是 text/csv 所以如果我在浏览器中打开它,应该可以下载。但它不能下载,我不知道它的解决方案,因为我正在学习灵药。这是我正在尝试的代码。请你帮我解决这个问题。

get "/dbs/foo/tables/source" do
  conn
  |> put_resp_content_type("text/csv")
  |> send_chunked(206)
  |> foo_data
end


  defp foo_data(conn) do
    Enum.reduce_while(["every-","word-","is-","a-","chunk"], conn, fn (chunk, conn) ->
      case Plug.Conn.chunk(conn, chunk) do
        {:ok, conn} ->
          {:cont, conn}
        {:error, :closed} ->
          {:halt, conn}
      end
    end)
  end

邮递员

postman screenshot

铬合金

chrome screenshot

elixir cowboy plug
1个回答
0
投票

我发现我做错了什么。我发送的状态码是 206 而不是 200. 感谢@NobbZ (Slack)给我指出的。在更改状态码后,它的工作是预期。

© www.soinside.com 2019 - 2024. All rights reserved.