2010-10-26 63 views
2

我正在使用一个Web应用程序,它在响应登录请求时发送了一些非标准的HTTP标头。问题标题是:如何使用Perl的LWP提取非标准的HTTP头文件?

SSO_STATUS: LoginFailed 

我试着用LWP将其解压::响应,$response->header('SSO_STATUS'),但它不工作。它可以用于标准头文件,例如Set-Cookie,Expires等。

有没有使用原始头文件的方法?

回答

4

请参阅this thread on Perlmonks

您需要以$response->header('SSO-STATUS')的身份访问标题字段的值。

在名与下划线的字段的语法:
$response->header(':SSO_STATUS' => 'foo');

+0

$ response-> header('SSO-STATUS')不起作用。 – Yahya 2010-10-28 13:23:25

+0

$ response-> headers_as_string get的所有标题,我可以做一个正则表达式匹配,但它将是一个更清洁的方式很好。 – Yahya 2010-10-28 13:25:28

7

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

头字段名的拼写通常规范化 包括' _'到' - '翻译。有一些应用程序 这是不合适的。用':'前缀字段名称可让您强制执行特定的拼写。例如,如果你真的想要一个头字段 名称显示为foo_bar这样的名称,而不是“富酒吧”,你可以把它像 这样:

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

这些字段名与返回':'完好 $h->header_field_names$h->scan回调,但冒号 不显示在$h->as_string

+0

我不想设置标题。我只想阅读这个非标准的标题。 – Yahya 2010-10-28 13:21:29

相关问题