如何创建 gzip 压缩的 HTTP::Response?

2024-02-26

我需要使用压缩数据创建 HTTP::Response 。我该如何对内容进行压缩?我是否只需添加适当的标头并使用 Compress::Zlib 自行压缩它?或者 LWP 模块是否提供了处理此问题的方法?


这是你需要的吗?您对数据进行压缩,设置内容编码标头,然后将其发送出去。

use strict;
use warnings;

use HTTP::Response;
use IO::Compress::Gzip qw(gzip);

my $data = q(My cat's name is Buster);

my $gzipped_data;
my $gzip = gzip \$data => \$gzipped_data;
print STDERR $gzipped_data;

my $response = HTTP::Response->new;

$response->code( 200 );
$response->header( 'Content-type'     => 'text/plain' );
$response->header( 'Content-encoding' => 'gzip' );
$response->header( 'Content-length'   => length $gzipped_data );

$response->content( $gzipped_data );

print $response->as_string;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建 gzip 压缩的 HTTP::Response? 的相关文章

随机推荐

  • Android BLE 扫描与 UUID 过滤器列表混淆

    我正在 Android 移动设备 A 上执行 UUID 过滤扫描 并且有两个测试用例 一个人在另一台 Android 设备 移动设备 b 上使用名为 BLE Scanner 的应用程序来创建具有两个测试服务 每个服务都有自己唯一的 UUID
  • 添加 for 循环可防止 OutOfMemoryError

    当我删除 for 循环时 我得到一个OutOfMemoryError 当我使用 for 循环时 我没有收到任何错误 谁能帮助我理解这种行为 public class JavaMemoryPuzzlePolite private final
  • yii2 拒绝用户登录后端

    我有 yii2 高级模板 应用了 RBAC 迁移 我试图学习 RBAC 并遵循Docs 2 0 http www yiiframework com doc 2 0 guide security authorization html 我是用数
  • Roslyn 加载项目文档失败

    在 Visual Studio Extension VSIX 解决方案中 我使用 Roslyn 从当前解决方案加载特定项目 Project myProject this CurrentComponentModel GetService
  • 如何安装knife-ec2插件?

    OSX 10 9 2 ruby v ruby 2 0 0p247 2013 06 27 revision 41674 universal x86 64 darwin13 knife v Chef 11 10 4 当我跑步时 knife ec
  • 在 Springfox 和 Spring MVC 中配置安全模式和上下文

    我有使用 Spring MVC 实现的简单 REST 服务 我决定用 Springfox 和 Swagger 2 0 来描述它们 一切似乎都很好 直到我开始添加安全模式和上下文 我对某些端点使用 HTTP 基本身份验证 对其他端点使用基于令
  • Python:从字符串中打印特定字符

    如何在Python中打印字符串中的特定字符 我仍在学习 现在正在尝试制作一个类似刽子手的程序 这个想法是 用户输入一个字符 如果它在单词中 则该单词将被打印 所有未发现的字母都为 我并不是在寻求一种方法来使我的整个项目的想法 代码变得更好
  • 在数据框中对因子进行数字重新排序

    我有从 0 到 39 的因数 现在它们的排序方式如下 gt levels items label 1 0 1 10 11 12 13 14 15 16 17 18 19 13 2 20 21 22 23 24 25 26 27 28 29
  • 根据(多个)条件分成组?

    我有一组不同颜色和重量的弹珠 我想根据它们的重量和颜色将它们分成几组 条件是 一组重量不能超过 100 个单位 一组中不同颜色的弹珠不得超过 5 个 一个可重现的例子 marbles lt data frame color sample 1
  • 我可以同时变基和压缩提交吗?

    当我对之前几次提交的更改进行修复时 我总是会连续运行两次 rebase 是否可以一步完成此工作流程 假设我有 4 个新提交 master D C B A Base 我在 B 中发现了一个错误 所以我创建了一个分支并修复它 master D
  • 我可以访问 iPhone 上的钥匙串吗?

    这个问题讨论 iPhone 上的数据加密 https stackoverflow com questions 189925 password encryption in iphone apps使用 crypt 函数 作为替代方案 iPhon
  • 按元组成员映射元组列表

    假设我有一个列表decimal decimal let tup 1M 2M 2M 3M 3M 3M 4M 5M 5M 6M 7M 6M 8M 9M 10M 9M 我需要一个函数 如果可以连接的话 可以将所有值分组在一起 例如 map 100
  • 如何选择 jq 中作为变量提供的键的值?

    如果这是输入 a key 2 another key 100 one more key 4 2 通过提供键的名称作为变量来选择这些键的值的最佳方法是什么 理想情况下 我正在寻找类似的东西 a key as key key 但这会导致语法错误
  • 片段和活动之间的核心区别是什么?哪些代码可以写成fragment?

    我有三个选项卡 每个选项卡三个片段和一个主要活动 我想创建套接字以通过 wifi 网络发送消息 那么我应该在哪里编写代码呢 在那个特定的片段类或主要活动中 当然 您可以在片段中编写任何代码 但您需要注意一些事情 在访问需要上下文的任何内容或
  • 如何为目标计数器设置计数器

    在分页媒体中 CSS 属性target counters http www w3 org TR css3 gcpm the target counter and target counters v可用于包含多个计数器 该规范给出了以下示例
  • Webpack ProvidePlugin 全局变量(找不到模块)

    我对 Webpack 还很陌生 但不明白为什么我的 ProvidePlugin 调用没有按预期工作 我有以下文件 App js var App function getSomething function size module expor
  • 输入二进制而不是十六进制[重复]

    这个问题在这里已经有答案了 可能的重复 我可以在 C 或 C 中使用二进制文字吗 https stackoverflow com questions 2611764 can i use a binary literal in c or c
  • Gradle 和多项目结构

    我试图了解应该如何进行以下项目设置 Top Android Project Project 1 Pure Java Modules Module A1 Module B1 Module Z1 Project 2 Android Librar
  • 如何在rails中后台运行rake任务

    这是我的命令 bundle exec rake resque work QUEUE trace 我想在我的服务器上作为后台进程运行此命令 请帮我 我经常使用的一个方法是 nohup bundle exec rake resque work
  • 如何创建 gzip 压缩的 HTTP::Response?

    我需要使用压缩数据创建 HTTP Response 我该如何对内容进行压缩 我是否只需添加适当的标头并使用 Compress Zlib 自行压缩它 或者 LWP 模块是否提供了处理此问题的方法 这是你需要的吗 您对数据进行压缩 设置内容编码