Как извлечь нестандартные заголовки HTTP, используя Perl LWP? - PullRequest
2 голосов
/ 26 октября 2010

Я работаю с веб-приложением, которое отправляет некоторые нестандартные заголовки HTTP в ответ на запрос входа. Заголовок в вопросе:

SSO_STATUS: LoginFailed 

Я пытался извлечь его с помощью LWP :: Response как $response->header('SSO_STATUS'), но он не работает. Он работает для стандартных заголовков, таких как Set-Cookie, Expires и т. Д.

Есть ли способ работы с необработанными заголовками?

Ответы [ 2 ]

7 голосов
/ 26 октября 2010

, если вы видите документацию HTTP :: Headers , в ней говорится, что

Правописание имени поля заголовка обычно канонизируется, включая перевод от _ к to -,Есть некоторые приложения, где это не подходит.Имена полей с префиксом «:» позволяют вводить определенное написание.Например, если вы действительно хотите, чтобы имя поля заголовка отображалось как foo_bar вместо «Foo-Bar», вы можете установить его следующим образом:

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

Эти имена полей возвращаютсяс неповрежденным символом ':' для $h->header_field_names и обратного вызова $h->scan, но двоеточия не отображаются в $h->as_string.

4 голосов
/ 26 октября 2010

См. этот поток в Perlmonks .

Вам необходимо получить доступ к значению поля заголовка как $response->header('SSO-STATUS').

Синтаксис для установки полей с подчеркиванием в именах:
$response->header(':SSO_STATUS' => 'foo');

...