mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
fix(HTTP Request Node): Respect the original encoding of the incoming response (#9869)
This commit is contained in:
committed by
GitHub
parent
e84ab35c4a
commit
2d19aef540
@@ -1945,9 +1945,7 @@ export class HttpRequestV3 implements INodeType {
|
||||
false,
|
||||
) as boolean;
|
||||
|
||||
const data = await this.helpers
|
||||
.binaryToBuffer(response.body as Buffer | Readable)
|
||||
.then((body) => body.toString());
|
||||
const data = await this.helpers.binaryToString(response.body as Buffer | Readable);
|
||||
response.body = jsonParse(data, {
|
||||
...(neverError
|
||||
? { fallbackValue: {} }
|
||||
@@ -1959,9 +1957,7 @@ export class HttpRequestV3 implements INodeType {
|
||||
} else {
|
||||
responseFormat = 'text';
|
||||
if (!response.__bodyResolved) {
|
||||
const data = await this.helpers
|
||||
.binaryToBuffer(response.body as Buffer | Readable)
|
||||
.then((body) => body.toString());
|
||||
const data = await this.helpers.binaryToString(response.body as Buffer | Readable);
|
||||
response.body = !data ? undefined : data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import nock from 'nock';
|
||||
import {
|
||||
setup,
|
||||
equalityTest,
|
||||
workflowToTests,
|
||||
getWorkflowFilenames,
|
||||
initBinaryDataService,
|
||||
} from '@test/nodes/Helpers';
|
||||
|
||||
describe('Test Response Encoding', () => {
|
||||
const workflows = getWorkflowFilenames(__dirname);
|
||||
const tests = workflowToTests(workflows);
|
||||
|
||||
const baseUrl = 'https://dummy.domain';
|
||||
const payload = Buffer.from(
|
||||
'El rápido zorro marrón salta sobre el perro perezoso. ¡Qué bello día en París! Árbol, cañón, façade.',
|
||||
'latin1',
|
||||
);
|
||||
|
||||
beforeAll(async () => {
|
||||
await initBinaryDataService();
|
||||
|
||||
nock.disableNetConnect();
|
||||
|
||||
nock(baseUrl)
|
||||
.persist()
|
||||
.get('/index.html')
|
||||
.reply(200, payload, { 'content-type': 'text/plain; charset=latin1' });
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
nock.restore();
|
||||
});
|
||||
|
||||
const nodeTypes = setup(tests);
|
||||
|
||||
for (const testData of tests) {
|
||||
test(testData.description, async () => await equalityTest(testData, nodeTypes));
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"name": "Response Encoding Test",
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {},
|
||||
"name": "When clicking \"Execute Workflow\"",
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
180,
|
||||
820
|
||||
],
|
||||
"id": "635fb102-a760-4b9e-836c-82e71bba7974"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "https://dummy.domain/index.html",
|
||||
"options": {}
|
||||
},
|
||||
"name": "HTTP Request (v3)",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"typeVersion": 3,
|
||||
"position": [
|
||||
520,
|
||||
720
|
||||
],
|
||||
"id": "eb243cfd-fbd6-41ef-935d-4ea98617355f"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "https://dummy.domain/index.html",
|
||||
"options": {}
|
||||
},
|
||||
"name": "HTTP Request (v4)",
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"typeVersion": 4,
|
||||
"position": [
|
||||
520,
|
||||
920
|
||||
],
|
||||
"id": "cc2f185d-df6a-4fa3-b7f4-29f0dbad0f9b"
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"When clicking \"Execute Workflow\"": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "HTTP Request (v3)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "HTTP Request (v4)",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"pinData": {
|
||||
"HTTP Request (v3)": [
|
||||
{
|
||||
"json": {
|
||||
"data": "El rápido zorro marrón salta sobre el perro perezoso. ¡Qué bello día en París! Árbol, cañón, façade."
|
||||
}
|
||||
}
|
||||
],
|
||||
"HTTP Request (v4)": [
|
||||
{
|
||||
"json": {
|
||||
"data": "El rápido zorro marrón salta sobre el perro perezoso. ¡Qué bello día en París! Árbol, cañón, façade."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user