Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 使用HTTP/1.1时LWP存在问题:数据块大小不正确,响应被截断_Perl_Http_Lwp - Fatal编程技术网

Perl 使用HTTP/1.1时LWP存在问题:数据块大小不正确,响应被截断

Perl 使用HTTP/1.1时LWP存在问题:数据块大小不正确,响应被截断,perl,http,lwp,Perl,Http,Lwp,我一直在编写一些Perl实用程序来与公司的一些内部网站进行交互。不久前,我开始在访问某些页面时遇到一个间歇性错误:HTTP响应中的块大小错误。我一直跟踪到模块Net::HTTP::Methods。我花了一点时间试图诊断错误的最终根源,但没有成功。然后在某个地方我发现了一个建议,将我的HTTP请求的协议设置为HTTP/1.0可能会有所帮助,令我惊讶的是,确实如此。一旦我对所有给我带来问题的页面请求都这样做了,事情就一帆风顺了 最近,我一直在编写与本地Bugzilla服务器交互的代码。在页面中间的某

我一直在编写一些Perl实用程序来与公司的一些内部网站进行交互。不久前,我开始在访问某些页面时遇到一个间歇性错误:HTTP响应中的块大小错误。我一直跟踪到模块Net::HTTP::Methods。我花了一点时间试图诊断错误的最终根源,但没有成功。然后在某个地方我发现了一个建议,将我的HTTP请求的协议设置为HTTP/1.0可能会有所帮助,令我惊讶的是,确实如此。一旦我对所有给我带来问题的页面请求都这样做了,事情就一帆风顺了

最近,我一直在编写与本地Bugzilla服务器交互的代码。在页面中间的某个地方截断HTTP响应有一个间歇性错误。起初我很困惑,但后来我想起了上面描述的问题,并尝试将协议设置为HTTP/1.0。同样,它起了作用。我尝试了上百次访问Bugzilla的EnterCR页面。使用默认的HTTP/1.1,我得到了六次响应的截断;对于HTTP/1.0,零次


有人知道这里会发生什么吗?我从来没有在我的浏览器中看到过页面截断,这表明问题出在LWP库上,但很难相信如此古老和广泛使用的库会有如此明显的错误。我使用最新的Perl模块运行Ubuntu,Bugzilla响应将服务器标识为Apache,如果这有帮助的话。

从您的描述中很难看出发生了什么,但是

如果强制执行HTTP/1.0,则不允许服务器使用传输编码:chunked发送数据,因此这可能解释了它为什么与HTTP/1.0一起工作 Ubuntu不提供LWP的最新版本,它们只提供对最初发布的版本的更新。哪个版本取决于你的Ubuntu版本。您可以使用perl-MLWP::UserAgent-e“warn LWP::UserAgent->version”检查已安装的版本。目前的版本是6.06。 在没有获得更多信息的情况下调试问题是不可能的。基本信息是LWP的版本。具有真实内容的数据包捕获tcpdump,即tcpdump-s0-wfile。。。查看服务器正在发送的数据也会非常有帮助。