gpt4 book ai didi

ruby-on-rails - 在 Rails 4 中显示或获取 HTTP header 属性

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:59 25 4
gpt4 key购买 nike

我有一个用 Rails 开发的应用程序,我想查看 HTTP header 中的属性。

有没有办法读取这些属性?它们存储在哪里?

有人提到了 request.headers。这样对吗?我看不到此数组中的任何属性。

最佳答案

request.headers 不返回散列,而是返回 ActionDispatch::Http::Headers 的实例,它是 rack env 的包装器。

ActionDispatch::Http::Headers 实现了很多方法,比如 [][]= ,这使得它表现得像一个散列,但是它不会覆盖默认的 inspect,因此您无法仅通过 ppp 查看键值对。

但是,您可以在机架环境中查看请求 header :

pp request.headers.env.select{|k, _| k =~ /^HTTP_/}

请记住,rack env 中的请求 header 是原始 http 请求 header 的 upcased、underscored 和 HTTP_ 前缀版本。

更新

实际上有一组有限的请求 header 没有前缀HTTP_。这些(大写和带下划线的) header 名称存储在 ActionDispatch::Http::Headers::CGI_VARIABLES 中。我在下面列出它们:

    AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
GATEWAY_INTERFACE
HTTPS
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_IDENT
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAME
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE

所以列表请求 header 的完整版本将是

pp request.headers.env.select{|k, _| k.in?(ActionDispatch::Http::Headers::CGI_VARIABLES) || k =~ /^HTTP_/}

关于ruby-on-rails - 在 Rails 4 中显示或获取 HTTP header 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32405155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com