我有来自远程服务器的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];