{
+ try {
+ // make axios work in node using form data
+ // reference: https://github.com/axios/axios/issues/1006#issuecomment-320165427
+ if(request.headers && request.headers['content-type'] === 'multipart/form-data') {
+ const form = new FormData();
+ forOwn(request.data, (value, key) => {
+ form.append(key, value);
+ });
+ extend(request.headers, form.getHeaders());
+ request.data = form;
+ }
+
+ const result = await axios(request);
+
+ return {
+ status: result.status,
+ headers: result.headers,
+ data: result.data
+ };
+ } catch (error) {
+ if(error.response) {
+ return {
+ status: error.response.status,
+ headers: error.response.headers,
+ data: error.response.data
+ };
+ }
+
+ return {
+ status: -1,
+ headers: [],
+ data: null
+ };
+ }
+};
\ No newline at end of file
diff --git a/packages/bruno-app/src/utils/network/index.js b/packages/bruno-app/src/utils/network/index.js
index 9617be345..5d3d4a291 100644
--- a/packages/bruno-app/src/utils/network/index.js
+++ b/packages/bruno-app/src/utils/network/index.js
@@ -2,6 +2,7 @@ import each from 'lodash/each';
import filter from 'lodash/filter';
import qs from 'qs';
import { rawRequest, gql } from 'graphql-request';
+import { sendHttpRequestInBrowser } from './browser';
const sendNetworkRequest = async (item) => {
return new Promise((resolve, reject) => {
@@ -79,10 +80,15 @@ const sendHttpRequest = async (request) => {
console.log('>>> Sending Request');
console.log(options);
- ipcRenderer
- .invoke('send-http-request', options)
+ // Todo: Choose based on platform (web/desktop)
+ sendHttpRequestInBrowser(options)
.then(resolve)
.catch(reject);
+
+ // ipcRenderer
+ // .invoke('send-http-request', options)
+ // .then(resolve)
+ // .catch(reject);
});
};