From 8c6a40d8d884df7f585601d9d4c6956d80475b3f Mon Sep 17 00:00:00 2001 From: DigitalBrainJS Date: Wed, 5 Oct 2022 21:33:40 +0300 Subject: [PATCH 1/2] Fixes #4999; --- lib/adapters/http.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/adapters/http.js b/lib/adapters/http.js index b864afeb18..35722b3106 100755 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -301,9 +301,14 @@ export default function httpAdapter(config) { auth && headers.delete('authorization'); - const path = parsed.pathname.concat(parsed.searchParams); + let path; + try { - buildURL(path, config.params, config.paramsSerializer).replace(/^\?/, ''); + path = buildURL( + parsed.pathname + parsed.search, + config.params, + config.paramsSerializer + ).replace(/^\?/, ''); } catch (err) { const customErr = new Error(err.message); customErr.config = config; @@ -315,7 +320,7 @@ export default function httpAdapter(config) { headers.set('Accept-Encoding', 'gzip, deflate, br', false); const options = { - path: buildURL(path, config.params, config.paramsSerializer).replace(/^\?/, ''), + path, method: method, headers: headers.toJSON(), agents: { http: config.httpAgent, https: config.httpsAgent }, From f0ec72d9a0165507816c1912cfccd70810fb3567 Mon Sep 17 00:00:00 2001 From: DigitalBrainJS Date: Wed, 5 Oct 2022 21:38:57 +0300 Subject: [PATCH 2/2] Added regression test; --- test/unit/regression/bugs.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 test/unit/regression/bugs.js diff --git a/test/unit/regression/bugs.js b/test/unit/regression/bugs.js new file mode 100644 index 0000000000..1a660507b1 --- /dev/null +++ b/test/unit/regression/bugs.js @@ -0,0 +1,13 @@ +import assert from 'assert'; +import axios from '../../../index.js'; + +describe('issues', function () { + describe('4999', function () { + it('should not fail with query parsing', async function () { + const {data} = await axios.get('https://postman-echo.com/get?foo1=bar1&foo2=bar2'); + + assert.strictEqual(data.args.foo1, 'bar1'); + assert.strictEqual(data.args.foo2, 'bar2'); + }); + }); +});