Nginx 子请求响应编码问题
Nginx subrequest response encoding issue
我有一个带位置的 Nginx 服务器和简单的 NJS 场景,我需要在其中解析 surequest 的响应。来自 API 的响应有这样一个 header:
"Content-Type": "application/json; charset=utf-8", "Cache-Control":
"no-store", "Content-Encoding": "gzip", ...
当我尝试读取 responseBody 时,它如下所示:
\u001f�\b\u0000\u0000\u0000\u0000\u0000\u0004\u0000��\u0007\u001cI�%&/m�{J�J��t�\b�
\u0013$ؐ@\u0010������\u001diG#)�*��eVe]f\u0016@�흼��{���{���;�N'
该问题仅在 NJS 中重现。它看起来像一个编码问题。有人知道如何修复它并解析这样的响应吗?
PS:我已尝试检查来自另一个 API 的 JSON 响应并遇到相同的编码问题。 Nginx版本为1.19.1,NJS为0.4.2
问题出在 gzip 编码上。解码响应帮助了我。我已将此指令添加到位置,现在它工作正常。
gunzip on;
我有一个带位置的 Nginx 服务器和简单的 NJS 场景,我需要在其中解析 surequest 的响应。来自 API 的响应有这样一个 header:
"Content-Type": "application/json; charset=utf-8", "Cache-Control": "no-store", "Content-Encoding": "gzip", ...
当我尝试读取 responseBody 时,它如下所示:
\u001f�\b\u0000\u0000\u0000\u0000\u0000\u0004\u0000��\u0007
\u001cI�%&/m�{J�J��t�\b�
\u0013$ؐ@\u0010������\u001diG#)�*��eVe]f\u0016@�흼��{���{���;�N'
该问题仅在 NJS 中重现。它看起来像一个编码问题。有人知道如何修复它并解析这样的响应吗?
PS:我已尝试检查来自另一个 API 的 JSON 响应并遇到相同的编码问题。 Nginx版本为1.19.1,NJS为0.4.2
问题出在 gzip 编码上。解码响应帮助了我。我已将此指令添加到位置,现在它工作正常。
gunzip on;