我正在使用一个Web应用程序,该应用程序在响应登录请求时发送一些非标准的HTTP标头。有问题的标题是:
SSO_STATUS: LoginFailed
我尝试使用LWP :: Response将其提取为$response->header('SSO_STATUS')
,但它不起作用。它适用于标准标题,例如Set-Cookie
,Expires
等。
有没有办法处理原始标题?
答案 0 :(得分:7)
如果您看到HTTP::Headers的文档,则说明
标题字段名称拼写通常是规范化的 包括'_'到' - '的翻译。有一些应用在哪里 这不合适。使用“:”前缀字段名称可以使用 强制特定的拼写。例如,如果你真的想要一个标题字段 要显示为foo_bar而不是“Foo-Bar”的名称,您可以将其设置为 这样:
$h->header(":foo_bar" => 1);
这些字段名称将以':'完整返回
$h->header_field_names
和$h->scan
回调,但冒号确实如此 不在$h->as_string
中显示。
答案 1 :(得分:4)
您需要将标题字段的值作为$response->header('SSO-STATUS')
访问。
在名称中设置带下划线的字段的语法:
$response->header(':SSO_STATUS' => 'foo');