我有来自远程服务器的HTTP :: Response Perl对象的问题,有时会返回带有重复的"Content-Length"标头的HTTP响应.
发生这种情况时,如果内容长度值为'43215',那么当我读取标题值时:
print ($response->header('Content-length'));
Run Code Online (Sandbox Code Playgroud)
结果是:
4321543215
Run Code Online (Sandbox Code Playgroud)
如何检测标头是否重复并访问实际值?
mu *_*ort 11
从精细手册HTTP::Headers:
多值字段将作为列表上下文中的单独值返回,并将作为标量上下文中的分隔符与","连接.
这是列表上下文:
print ($response->header('Content-length'))
Run Code Online (Sandbox Code Playgroud)
因此,$response->header()将两个Content-length标题作为列表返回,结果基本上是:
print join('', 43215, 43215)
Run Code Online (Sandbox Code Playgroud)
您既可以使用kork的$response->content_length()方法,也可以获取Content-length数组中的所有标题,并使用第一个作为长度:
my @lengths = $response->header('Content-length');
my $length = $lengths[0];
Run Code Online (Sandbox Code Playgroud)
如果你最终得到多个Content-length标题并且它们不同,那么有人会非常困惑.
| 归档时间: |
|
| 查看次数: |
654 次 |
| 最近记录: |