很明显,我的代码中似乎缺少了一些东西。我发送的是一个分块的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
邮递员
铬合金
我发现我做错了什么。我发送的状态码是 206
而不是 200
. 感谢@NobbZ (Slack)给我指出的。在更改状态码后,它的工作是预期。