perl - HTTP::Request 在标头中用连字符替换下划线
问题描述
使用HTTP::Request
from指定包含下划线的自定义标头时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
有没有办法关闭这种行为?
- perl v5.26.2
- LWP:用户代理 1.9601
- linux 4.17.8-1-ARCH
解决方案
根据HTTP::Headers中“NON-CANONICALIZED FIELD NAMES”下:
的文档,尝试使用前导命名标头:
标头字段名称拼写通常是规范化的,包括“_”到“-”的翻译。有些应用程序不适合这样做。使用 ':' 为字段名称添加前缀允许您强制使用特定的拼写。
推荐阅读
- java - 如何直接从复制或分享 URL 中获取 Instagram 图片或视频 URL?
- c++ - std::make_unique 带有空指针?
- python - python 上的前向声明与使用 globals()
- javascript - 如何将对象的键和子键数组转换为指向某个属性值的链接?
- javascript - 为什么我的角色在我的 2D 横向卷轴中移动不顺畅?
- c# - Xamarin Android
- python - IBM Watson 未正确解析来自 python 请求的 json 有效负载 (400)
- c - ANTLRv3:C 目标错误处理。更改 System.err out
- python - Numpy:如何将颜色矩阵转换为扁平向量
- c# - 如何在 Visual Studio 2017 中修复此错误