如何使用 Perl 的 LWP 提取非标准 HTTP 标头?

发布于 2024-09-29 06:23:41 字数 287 浏览 1 评论 0原文

我正在使用一个 Web 应用程序,该应用程序在响应登录请求时发送一​​些非标准 HTTP 标头。有问题的标头是:

SSO_STATUS: LoginFailed 

我尝试使用 LWP::Response as $response->header('SSO_STATUS') 提取它,但它不起作用。它确实适用于标准标头,例如 Set-CookieExpires 等。

有没有办法使用原始标头?

I'm working with a web application that sends some non-standard HTTP headers in its response to a login request. The header in question is:

SSO_STATUS: LoginFailed 

I tried to extract it with LWP::Response as $response->header('SSO_STATUS') but it does not work. It does work for standard headers such as Set-Cookie, Expires etc.

Is there a way to work with the raw headers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

入画浅相思 2024-10-06 06:23:41

如果您看到 HTTP::Headers 的文档,它指出那

标头字段名称拼写通常是规范化的
包括“_”到“-”的翻译。有一些应用程序在哪里
这是不合适的。在字段名称前加上“:”前缀可以让您
强制使用特定的拼写。例如,如果您确实想要一个标头字段
名称显示为 foo_bar 而不是“Foo-Bar”,您可以将其设置为
这个:

  $h->header(":foo_bar" => 1);

这些字段名称会以完整的“:”形式返回
$h->header_field_names$h->scan 回调,但冒号确实
不显示在 $h->as_string 中。

if you see the documentation of HTTP::Headers, it states that

The header field name spelling is normally canonicalized
including the '_' to '-' translation. There are some application where
this is not appropriate. Prefixing field names with ':' allow you to
force a specific spelling. For example if you really want a header field
name to show up as foo_bar instead of "Foo-Bar", you might set it like
this:

  $h->header(":foo_bar" => 1);

These field names are returned with the ':' intact for
$h->header_field_names and the $h->scan callback, but the colons do
not show in $h->as_string.

吃素的狼 2024-10-06 06:23:41

请参阅此 Perlmonks 主题

您需要以 $response->header('SSO-STATUS') 的形式访问标头字段的值。

设置名称中带下划线的字段的语法:
$response->header(':SSO_STATUS' => 'foo');

See this thread on Perlmonks.

You need to access the value of the header field as $response->header('SSO-STATUS').

The syntax for setting fields with underscores in names:
$response->header(':SSO_STATUS' => 'foo');

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文