如何使用Perl为HTTP请求发送不正确的Content-Length标头?

如何使用Perl为HTTP请求发送不正确的Content-Length标头?,第1张

概述我正在尝试调试在解析 Plack::Request时在服务器日志中显示的奇怪警告.在某些情况下,一个损坏的UserAgent将发送一个看起来像“6375,6375”的Content-Length标题,这显然是错误的. 要正确解决这个问题,我需要能够重现警告.我想将其包含在单元测试中,这样我就可以确保在警告静音后没有回归.但是,我在使用Perl时遇到了麻烦.我知道这可以使用netcat和socat完 我正在尝试调试在解析 Plack::Request时在服务器日志中显示的奇怪警告.在某些情况下,一个损坏的UserAgent将发送一个看起来像“6375,6375”的Content-Length标题,这显然是错误的.

要正确解决这个问题,我需要能够重现警告.我想将其包含在单元测试中,这样我就可以确保在警告静音后没有回归.但是,我在使用Perl时遇到了麻烦.我知道这可以使用netcat和socat完成,但我不希望单元测试必须依赖其他二进制文件来安装.

这是我尝试过的:

#!/usr/bin/env perluse strict;use warnings;use JsON::XS qw( encode_Json );use WWW::Mechanize;my $mech = WWW::Mechanize->new;$mech->add_handler(    request_prepare => sub {        my ( $req,$ua,$h ) = @_;        $req->headers->header( 'Content-Length' => 9999 );        return;    });my $Json = encode_Json( { foo => 'bar' } );$mech->post(    'http://example.com'/url,'Content-Length' => 999,Content          => $Json);

输出是:

Content-Length header value was wrong,fixed at /opt/perl5.16.3/lib/site_perl/5.16.3/LWP/Protocol/http.pm line 260.200

这对我来说太有用了. 总结

以上是内存溢出为你收集整理的如何使用Perl为HTTP请求发送不正确的Content-Length标头?全部内容,希望文章能够帮你解决如何使用Perl为HTTP请求发送不正确的Content-Length标头?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1233095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存