如何解压 PHP/Lumen/Laravel 的 gzip 请求?

2024-06-20

我收到来自第三方的 gzip 编码文本请求(~1mb,所以这是有道理的)

我的测试路线:

$router->post(
    'testgzip',
    function (\Illuminate\Http\Request $request) {
        $decompressed = null;
        if ($request->header('content-encoding') === 'gzip') {
            $decompressed = gzinflate($request->getContent());
        }

        return [
            'body' => $decompressed ?? $request->getContent(),
        ];
    }
);

我的测试文件test.txt

hello world!

我的健全性检查:

curl --data-binary @test.txt -H "Content-Type: text/plain" -X POST http://localhost:8000/testgzip 
{"body":"hello world!"}    

为了压缩它,我运行命令gzip test.txt

My curl:

curl --data-binary @test.txt.gz -H "Content-Type: text/plain" -H "Content-Encoding: gzip" -X POST http://localhost:8000/testgzip

这会触发一个

gzinflate():数据错误

我还尝试了 gzuncompress 触发

gzuncompress():数据错误

我究竟做错了什么?如何解压缩 gzip 请求?


对于 gzip 压缩的内容,您需要使用gzdecode().

$decompressed = gzdecode($request->getContent());

这是 PHP 内置的。

gzinflate() 处理压缩(未 gzip 压缩)字符串,gzuncompress() 处理压缩(未 gzip 压缩)字符串。

Docs:

  • 津弗拉特 https://www.php.net/manual/en/function.gzinflate.php
  • 压缩包 https://www.php.net/manual/en/function.gzuncompress.php
  • gzdecode https://www.php.net/manual/en/function.gzdecode.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解压 PHP/Lumen/Laravel 的 gzip 请求? 的相关文章

  • 在php中获取二进制数据大小的正确方法是什么?

    我已阅读文件的一部分 现在想确保该部分的大小正确 我怎样才能在 php 中做到这一点 part fread file 1024 return some function part 1024 我已经阅读了这些示例 但我怀疑是否要使用 strl
  • 当存在联系时如何为数组分配排名号

    当尝试为数组中存在平局的数值分配排名时 我很难知道从哪里开始 因此 例如 我需要像下面这样转换一个数组 myarray 4 76 34 13 34 到另一个数组中 例如 myarray2 1 5 3 5 2 3 5 基本上 当相同的数字在数
  • 未捕获的 ValueError:mysqli_stmt::execute():参数 #1 ($params) 必须是列表数组

    我试图通过这两个查询在我的数据库中插入准备好的语句多个值 这两个查询都发生故障 返回 未捕获的错误 调用未定义的方法 mysqli stmt bindValue 对于第一个代码或 未捕获的 ValueError mysqli stmt ex
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 如何在Web服务中传递URL

    我想将此 URL 作为网址中的值传递http localhost h2orn php verify php email emails hash hash但是 我只能在 符号之前传递 我想传递所有 URL 我正在使用java网络服务 代码在这
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • 配置 .htaccess 以在 PHP 框架 (Silex) 上工作

    我的 Apache2 本地主机 linux 上有一个工作路径 http localhost lab silex web index php hello name 我想成为 http localhost lab silex hello nam
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • 如何在javascript中使用自动递增id?

  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 如何在 Laravel 5 中处理嵌套的 JSON 对象请求?

    我们在 Laravel 5 和 AngularJs Ionic 中运行此 Web 服务来处理 Web 当我们将请求从 Web 客户端 发送到 Web 服务 后端 时 我们传递了嵌套的 JSON 对象 我们在读取服务器端父对象下的所有子对象时
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • WordPress 事件按元生效日期排序

    我在获取参数数组以按 Wordpress 中的日期对事件列表进行排序时遇到一些问题 我在 Stack Overflow 和其他地方找到了几个建议的解决方案 但经过大量的试验和错误后 这些解决方案似乎都不起作用 这没什么花哨的 而且应该比这容
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que

随机推荐

  • 动态查找 EJB

    我正在 Glassfish 3 上开发一个应用程序 我有一个如下所示的 EJB LocalBean Stateless public class MyBean public void doSomething 我的客户端代码 在同一应用程序内
  • Extjs 4.2:如何在 Ext.Ajax.Request POST 中正确发送参数

    我必须从 ExtJs 脚本执行 POST 才能从数据库中删除某些内容 Ext Ajax request url deleteRole html method POST headers Content Type text html waitT
  • 使用 pd.concat() 时,生成的数据框列名称显示在括号中并添加逗号

    我对 Python 编程相当陌生 我不明白为什么会发生这种情况 我正在使用 UCI 机器学习存储库中的 在线购物者购买意图数据集 我将具有数值特征和分类特征的数据分成两个单独的数据框 一个用于cat data 一个用于num data 以虚
  • 使用 groupby 过滤器后应用 jinja 过滤器

    我有一个字典列表 我想按某个属性进行分组 然后按另一个属性求和 对于变量 foo 这将类似于 foo groupby a sum attribute b 这显然行不通 因为之后groupby 我有一个元组列表 有什么方法可以解压元组然后重新
  • 为什么在 HTML 中使用 onClick() 是一种不好的做法?

    我多次听说使用 JavaScript 事件 例如onClick 在 HTML 中是一种不好的做法 因为它不利于语义 我想知道以下代码有什么缺点以及如何修复 a href link a 你可能正在谈论不引人注目的 JavaScript htt
  • 使用when条件来匹配输出寄存器中的字符串(Ansible)

    我无法在输出变量中搜索我用于 when 语句的指定字符串 下面的代码应该检查输出变量中的字符串 distribute list 但是当运行剧本时它会给出错误 fatal 192 168 3 252 FAILED gt failed true
  • 在 C++ 中使用直接访问文件

    我对 C 以及一般的编程 非常陌生 并且正在从事一个让我感到困惑的项目 并不难做哈 该项目涉及直接访问文件 我们将创建一个由一系列零件记录组成的文件 以下是一些规格 应包含标头记录 24 字节 填充 指示 有效项目的数量 每个 24字节长
  • 排序线程按照它们创建/启动的顺序运行

    我如何按照线程实例化的顺序对线程进行排序 我怎样才能让下面的程序按顺序打印数字1 10 public class ThreadOrdering public static void main String args class MyRunn
  • 如何在 VSCode 中的 switch-case 语句中自动缩进?

    有点令人沮丧的是 vscode 会自动执行很多操作 但是当使用 switch case 语句时 它不会在冒号后自动缩进 这就是如果我在不干扰的情况下打字的话我会得到的结果 int x 32 switch x case 33 break ca
  • 如何使用带有 python 的报告实验室将 html 文档转换为 pdf

    我正在尝试使用报告实验室将我创建的 html 文档转换为 pdf html 文档如下 我不确定如何做到这一点 我在网上查看过 似乎找不到解决方案 html文档 h2 Convert to pdf h2 p Lorem ipsum dolor
  • 如果特定 stateParam 为空,如何重定向到 state

    我不确定我这样做的方式是否正确 任何建议将不胜感激 我有一个餐厅选择器 用户可以从中选择一家餐厅 然后所有其他子状态加载特定于所选餐厅的内容 但我需要默认选择一个子状态 包括一家餐厅 它将根据用户最近的位置或 cookie 数据 如果他们之
  • 一个具有完全透明背景的qt小部件

    我需要创建一个 qt 小部件 它将充当其他一些小部件的父级 并对它们进行排序 现在的问题是如何使其背景完全透明 我想这样做 struct Imp Imp QWidget parent thisWidget new QWidget paren
  • 代码来检测Android设备自己的IP地址?

    我想了解可以检测 Android 设备的 IP 地址和 Android 客户端名称的代码 以便在我们的应用程序中使用此 Ip 地址和客户端名称 任何人都可以帮助我吗 提前致谢 如果您在 Android 手机上运行此程序 这将告诉您您自己的
  • 将标签文本的一部分设置为粗体

    有什么办法可以使一部分label text要大胆吗 label text asd string 想要string部分要加粗 有可能吗 这怎么办 下面的类说明了如何通过覆盖来做到这一点OnPaint in the LabelWinForms
  • DDD - 乐观并发属性(etag 或时间戳)是否应该成为域的一部分?

    从理论上讲 如果我们在聚合根级别实现乐观并发 更改 AR 中的实体会更改 AR 上的版本 并且假设我们使用时间戳作为版本属性 只是为了简单起见 时间线应该是 AR 上的属性还是应该是一侧和另一侧的读取模型的一部分 例如更新 是应用程序服务的
  • 为什么 git 在每次合并时都运行“git gc --auto”?

    今天 git 开始表现得很有趣 嗯 比平时更有趣 坚持运行git gc每次合并后 即使它们是背靠背的 C Projects my current project gt git pull remote Counting objects 31
  • CSS3 box-shadow 用于类似重叠的 div

    我正在尝试用css3来实现这种效果 HTML 代码显然是这样的
  • Xamarin.Android 没有“android:exported”属性设置错误

    当 Xamarin Android 设置为 Android 12 时 我收到 您上传了包含活动的 APK 或 Android 应用程序包 具有意图过滤器的活动别名 服务或广播接收器 但是 没有设置 android exported 属性 该
  • android在移动设备上调试时连接到PC的本地主机

    我想调试我的 Android 应用程序 我使用 USB 电缆将 Android 设备连接到我的电脑 在我的应用程序中有一个与本地主机连接的按钮 本地主机的 IP 是10 0 2 2端口是8080 我读过 在移动设备上调试时 ip10 0 2
  • 如何解压 PHP/Lumen/Laravel 的 gzip 请求?

    我收到来自第三方的 gzip 编码文本请求 1mb 所以这是有道理的 我的测试路线 router gt post testgzip function Illuminate Http Request request decompressed