如何解析外部api提交的NodeJS中的gzip压缩数据 [英] How to parse gzipped data in NodeJS submitted by external api

查看:40
本文介绍了如何解析外部api提交的NodeJS中的gzip压缩数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一个外部 API 将一个 POST 请求及其以 gzip 格式压缩的结果发送到我的 postback_url.这是我在 body 参数中得到的.顺便说一句,我缩短了输出,因为它是一个很长的字符串.

An external API sends a POST request with its results compressed in the gzip format to my postback_url. Here is what I get in body param. Btw, I shorten the output as it is a very long string.

<代码>体:H4sIAAAAAAAAA + z963bbuLIwir4Kk/5mYi1LDEndpVby6WrLtny3bDn​​ulcGrRIsSZZK62dEY3xPsP + cdzivsMc7P/Sj7SU4VQFIkRTl2OumevWZmz1gkCBSAQqFuKABPb2eqZevm + G3pLcfyrMAJPJcXim + Tb21HdKb2F9lU1LclgYP/+ Wkj1bbFPiS/PRmykNXRRyoFkBEKjK3KmCibtvO2BIUc0R4inOkY3nnvXbUs01p/f1v6/PRWVxBKgcvwGS6dyuTzQorjcrkUVp4SBEUuFCU1Vygq39k8rshvNs9S7anhBNo3EZ0BNOftLI3VqNYEfvqm2TdUeDCtvjjW5be02V/6qgOPA2dkwM + LWv5H8q0iOuLb0tNbcaJDs9watOlYduhABCDb2HC/clv94iwnmLRuhiGO + 1PorYuJt + oYEofqcm5aiE3VUEfq2DEtZgKZGGmqG4pqkeb34fPT3dspNKCt3GHX77yC8Ha3pejd2xXWasoittbDfyEDmJwASiVRHn6ZWgbAHjjOxC7dfbj74Eyl + aRYzN3nWHWhylNHTUHf2amdUkXbSfGsOBIfzbE4t1nZHN19gIe7D4oGf2TRMBDk2wB0ij4P6Yo602XsuKLaQ8dEVJpATW/N + lgx5/bblTfChMJegpgohgHrijkS9bE/FNjKbUiIHQ9osupSIc6wFFdIcRmG50tcuiSkmV0kE8imO + ooOFPIO2n3hNAzTyGFoFx6UNhMtpBNZ7K3HkGW3v7 + RjFl7A + DCR9/x78MASqbE7Vy9/buLXnFLPCGA0bGy5YH6khkAQV3Hy5U0ZIH5wSF9ik0A8pgHyG/Or57C0BVUfn4 + 0h1REYeiJatOvDp6rKVKuBXmm6OHcA1pJuW3tehGDMWR1ilpWrACJCqNrJWx5KwdzUedO61y/YN1xDEjJg7Pq0 + nLaze + JicV7VWwX + 5vJ +/0B4OMw00/vzdLfVyajiQa1//viYydaPT52ckBGnymx3vn9yMNeq1Wa1Wq3p6vJgJo+MsXi

如何解压缩它们并将它们转换为 JSON 格式?我尝试使用给定的代码 https://nodejs.org/api/zlib.html 但是失败了.我将非常感谢一些易于理解的示例代码或任何参考.

How can I unzip them and convert them to JSON format? I tried with the code given https://nodejs.org/api/zlib.html but failed with it. I will highly appreciate some sample easy-to-understand code or any references.

推荐答案

如果是 base64 格式的 gzip,那么你可以这样解码.

If it's a gzip in base64 then you can Decode it like this.

const zlib = require('zlib');

const buffer = Buffer.from(data, 'base64');

zlib.unzip(buffer, { finishFlush: zlib.constants.Z_SYNC_FLUSH }, (err, buffer) => {
    if (err) {
      console.error('An error occurred:', err);
    }
    console.log(JSON.parse(buffer.toString()));
});

这篇关于如何解析外部api提交的NodeJS中的gzip压缩数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆