使用HTTP::Request
中的LWP::UserAgent
指定包含下划线的自定义标头时,下划线将更改为连字符:
use LWP::UserAgent;
my $rq = HTTP::Request->new("GET", "http://cpan.org");
$rq->header("X-FOO_BAR", "xyzzy");
print $rq->as_string;
输出:
GET http://cpan.org
X-FOO-BAR: xyzzy
有没有办法关闭此行为?
答案 0 :(得分:11)
根据HTTP::Headers中“非规范字段名称”下的文档,尝试用前导:
命名标题:
标头字段名称的拼写通常会规范化,包括从'_'到'-'的转换。有些应用程序不合适。在字段名称前加上“:”可让您强制使用特定的拼写。
答案 1 :(得分:0)
在尝试通过CGI::Session
在页眉中写一个位置时,我也遇到了同样的问题。我通过将下划线替换为%5f
来解决了该问题,并且对我有用。对于您而言,这可能有效:
$rq->header('X-FOO%5fBAR', "xyzzy");