ログイン要求への応答で非標準の HTTP ヘッダーを送信する Web アプリケーションを使用しています。問題のヘッダーは次のとおりです。
SSO_STATUS: LoginFailed
LWP::Response as で抽出しようとしまし$response->header('SSO_STATUS')
たが、うまくいきません。などSet-Cookie
の標準ヘッダーでは機能します。Expires
生のヘッダーを操作する方法はありますか?
HTTP::Headersのドキュメントを見ると、次のように記載されています
ヘッダー フィールド名のスペルは通常、'_' から '-' への変換を含めて正規化されます。これが適切でないアプリケーションもあります。フィールド名の前に「:」を付けると、特定のスペルを強制できます。たとえば、ヘッダー フィールド名を「Foo-Bar」ではなく foo_bar として表示したい場合は、次のように設定できます。
$h->header(":foo_bar" => 1);
これらのフィールド名は、「:」がそのままの for
$h->header_field_names
と$h->scan
コールバックで返されますが、コロンは に表示されません$h->as_string
。
Perlmonks のこのスレッドを参照してください。
としてヘッダー フィールドの値にアクセスする必要があります$response->header('SSO-STATUS')
。
名前にアンダースコアを含むフィールドを設定するための構文:
$response->header(':SSO_STATUS' => 'foo');