this issueの後に、私のコントローラのPOSTから生のボディを取得しましたが、エンコードがapplication/x-www-form-urlencoded
に設定されているとボディのみが表示されます。 curl
でテストすると、POST本体を読み取ることができますが、エンコードがtext/xml
に設定されていると、本体が空になります。私のrouter.ex
では私が持っている:私のコントローラでフェニックスの生のHTTPリクエストボディを取得する
pipeline :api do
plug :accepts, ["xml"]
end
を私が持っている:
def parse(conn, params) do
xml = conn.private[:raw_body]
Logger.debug(xml)
text conn, xml
end
endpoint.ex
で:
def copy_req_body(conn, _) do
Plug.Conn.put_private(conn, :copy_raw_body, true)
end
plug :copy_req_body
私はので、私はよく分からないフェニックスとエリクサーに新たなんですこれをデバッグする方法。なぜHTTPリクエストのエンコーディングが生のボディデータの読み方と異なるのでしょうか?私のアプリケーションはtext/xml
を受け入れ、リクエスト本文を文字列として読み込む必要があります。