perl – 检测HTTP :: Response中的重复标头

前端之家收集整理的这篇文章主要介绍了perl – 检测HTTP :: Response中的重复标头前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有来自远程服务器的HTTP :: Response Perl对象的问题,有时会返回带有重复的“Content-Length”标头的HTTP响应.

发生这种情况时,如果内容长度值为’43215′,那么当我读取标题值时:

print ($response->header('Content-length'));

结果是:

4321543215

如何检测标头是否重复并访问实际值?

解决方法

从HTTP :: Headers的精细手册:

A multi-valued field will be returned as separate values in list context and will be
concatenated with “,” as separator in scalar context.

这是列表上下文:

print ($response->header('Content-length'))

因此,$response-> header()将两个Content-length标头作为列表返回,结果基本上是:

print join('',43215,43215)

你可以使用kork的$response-> content_length()方法,也可以获取数组中的所有Content-length头文件,并使用第一个作为长度:

my @lengths = $response->header('Content-length');
my $length  = $lengths[0];

如果你最终得到多个内容长度的标题并且它们不同,那么有人会非常困惑.

猜你在找的Perl相关文章