Rack::RequestでHTTPリクエストヘッダ一覧を書き出す

More than 1 year has passed since last update.

Sinatraとかでいつも忘れるのでメモ

Rack::Requestのenvの仕様は以下のような感じになる

なので、以下のような感じでダンプ出来る(人間がわかれば良ければ1行目をpするだけでも良さそう)

http_headers = request.env.select { |k, v| k.start_with?('HTTP_') }
headers = http_headers.inject({}) do |a, (k, v)|
  a[k.sub(/^HTTP_/, "").downcase.gsub(/(^|_)\w/) { |word| word.upcase }.gsub("_", "-") ] = v
  a
end
puts headers.to_a.map { |v| v.join(": ") }.join("\n")

参照URL

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.