2
我已經與鳳凰玩弄,我想提供一個下載鏈接到PDF文件:在我的開發環境鳳凰測試不接受大寫的響應頭
下面的代碼工作正常。當我點擊鏈接時,PDF文件被下載。
case File.read(localpath) do
{:ok, pdf_content} ->
conn
|> put_resp_header("Content-Type", "application/pdf")
|> put_resp_header("Content-Disposition", ~s[attachment; filename="#{file}"])
|>200, pdf_content)
{:error, _} ->
conn
|>:not_found, "Not Found")
end
然而,當我運行測試,以驗證行爲,我會得到一個錯誤:
** (Plug.Conn.InvalidHeaderError) header key is not lowercase: "Content-Type"
stacktrace:
(plug) lib/plug/conn.ex:957: Plug.Conn.validate_header_key!/2
(plug) lib/plug/conn.ex:556: Plug.Conn.put_resp_header/3
這似乎不可思議我有2個原因:
- 爲什麼有頭有在較低的字符?
- 爲什麼開發和測試環境中的行爲不同?