加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 23:26:29 所属栏目:大数据 来源:网络整理
导读:我有来自远程服务器的HTTP :: Response Perl对象的问题,有时会返回带有重复的“Content-Length”标头的HTTP响应. 发生这种情况时,如果内容长度值为’43215′,那么当我读取标题值时: print ($response-header('Content-length')); 结果是: 4321543215 如何
我有来自远程服务器的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];

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读