perl - 使用 WWW::Mechanize 透明处理 GZip 编码的内容

标签 perl www-mechanize content-encoding lwp

我正在使用 WWW::Mechanize,目前正在处理带有“Content-Encoding: gzip”的 HTTP 响应。 ' 在我的代码中首先检查响应头,然后使用 IO::Uncompress::Gunzip 获取未压缩的内容。

但是,我想透明地执行此操作,以便 WWW::Mechanize 方法(如 form()、links() 等)处理并解析未压缩的内容。由于 WWW::Mechanize 是 LWP::UserAgent 的子类,我更愿意使用 LWP::UA::handlers去做这个。

虽然我取得了部分成功(例如,我可以打印未压缩的内容),但我无法以我可以调用的方式透明地执行此操作

$mech->forms();

总结:如何“替换” $mech 对象内的内容,以便从那时起,所有 WWW::Mechanize 方法都像 Content-Encoding 从未发生过一样工作?

感谢您的关注和帮助。
谢谢

最佳答案

WWW::Mechanize::GZip , 我认为。

关于perl - 使用 WWW::Mechanize 透明处理 GZip 编码的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/874262/

相关文章:

perl - 通过脚本识别静态库之间的循环依赖

perl - 根据标题关闭选项卡

perl - 如何使用 Perl 的 WWW::Mechanize 获取框架源?

go - 检测 gzip 编码以手动解压缩响应,但缺少 'Content-Encoding' header

perl - 如何使用 LWP::UserAgent 接受 gzip 压缩的内容?

java - 上传到S3时如何设置内容类型和内容编码?

perl - Perl子例程如何报告调用它的行?

regex - 使用 Perl 正则表达式搜索并替换特定长度的字符串

arrays - Perl:从子程序返回哈希

perl - WWW::Mechanize GET 超时时保存部分内容