From 30c3c105246a657d56e14cf2f2958d6ef8fc6df5 Mon Sep 17 00:00:00 2001 From: Nriver <6752679+Nriver@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:10:13 +0800 Subject: [PATCH] fix decoding issue for request data chunks --- src/services/request.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/services/request.js b/src/services/request.js index 0334c0986..610e44f51 100644 --- a/src/services/request.js +++ b/src/services/request.js @@ -63,10 +63,15 @@ function exec(opts) { } let responseStr = ''; + let chunks = []; - response.on('data', chunk => responseStr += chunk); + response.on('data', chunk => chunks.push(chunk)); response.on('end', () => { + // use Buffer instead of string concatenation to avoid implicit decoding for each chunk + // decode the entire data chunks explicitly as utf-8 + responseStr = Buffer.concat(chunks).toString('utf-8') + if ([200, 201, 204].includes(response.statusCode)) { try { const jsonObj = responseStr.trim() ? JSON.parse(responseStr) : null;