diff --git a/packages/backend/src/apps/http-request/actions/custom-request/index.js b/packages/backend/src/apps/http-request/actions/custom-request/index.js index 684046b7..c43b3792 100644 --- a/packages/backend/src/apps/http-request/actions/custom-request/index.js +++ b/packages/backend/src/apps/http-request/actions/custom-request/index.js @@ -90,7 +90,7 @@ export default defineAction({ async run($) { const method = $.step.parameters.method; - const data = $.step.parameters.data; + const data = $.step.parameters.data || null; const url = $.step.parameters.url; const headers = $.step.parameters.headers; @@ -108,14 +108,17 @@ export default defineAction({ return result; }, {}); - let contentType = headersObject['content-type']; + let expectedResponseContentType = headersObject.accept; // in case HEAD request is not supported by the URL try { const metadataResponse = await $.http.head(url, { headers: headersObject, }); - contentType = metadataResponse.headers['content-type']; + + if (!expectedResponseContentType) { + expectedResponseContentType = metadataResponse.headers['content-type']; + } throwIfFileSizeExceedsLimit(metadataResponse.headers['content-length']); // eslint-disable-next-line no-empty @@ -128,7 +131,7 @@ export default defineAction({ headers: headersObject, }; - if (!isPossiblyTextBased(contentType)) { + if (!isPossiblyTextBased(expectedResponseContentType)) { requestData.responseType = 'arraybuffer'; } @@ -138,7 +141,7 @@ export default defineAction({ let responseData = response.data; - if (!isPossiblyTextBased(contentType)) { + if (!isPossiblyTextBased(expectedResponseContentType)) { responseData = Buffer.from(responseData).toString('base64'); } diff --git a/packages/backend/src/helpers/axios-with-proxy.js b/packages/backend/src/helpers/axios-with-proxy.js index 7754fd43..e355573f 100644 --- a/packages/backend/src/helpers/axios-with-proxy.js +++ b/packages/backend/src/helpers/axios-with-proxy.js @@ -2,7 +2,7 @@ import axios from 'axios'; import { HttpsProxyAgent } from 'https-proxy-agent'; import { HttpProxyAgent } from 'http-proxy-agent'; -const config = {}; +const config = axios.defaults; const httpProxyUrl = process.env.http_proxy; const httpsProxyUrl = process.env.https_proxy; const supportsProxy = httpProxyUrl || httpsProxyUrl;