首页 > 解决方案 > HTTP::Request 在标头中用连字符替换下划线

问题描述

使用HTTP::Requestfrom指定包含下划线的自定义标头时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

有没有办法关闭这种行为?

标签: perlhttpheader

解决方案


根据HTTP::Headers中“NON-CANONICALIZED FIELD NAMES”下:的文档,尝试使用前导命名标头:

标头字段名称拼写通常是规范化的,包括“_”到“-”的翻译。有些应用程序不适合这样做。使用 ':' 为字段名称添加前缀允许您强制使用特定的拼写。


推荐阅读