Как обойти предпечатную проверку в HTTP-сообщении со сложным медиатипом с помощью Electron? - PullRequest
0 голосов
/ 07 сентября 2018

Мне нужно использовать конечную точку HTTP, используя определенный тип носителя, и эта конечная точка не обрабатывает метод OPTIONS.

Я полагаю, что это было бы невозможно при использовании обычных браузеров, но я верю, что это возможно при использовании Electron, поскольку я могу сделать тот же POST-запрос, используя Postman.

Какую структуру я должен использовать для достижения этой цели?

1 Ответ

0 голосов
/ 07 сентября 2018

Я получил это работает. Если вы используете Angular, jQuery или какой-либо Javascript внутри Electron, он будет использовать возможности браузера и, следовательно, также отправит предварительный просмотр OPTIONS, если POST имеет сложный тип носителя, как в моем случае.

Если вы используете http API Electron, он этого не делает. Документация здесь https://electronjs.org/docs/api/client-request

Вот мой угловой код POC, использующий его:

  const { net } = require('electron').remote;
  const request = net.request(requestApi);

let requestApi = {
    method: 'POST',
    headers: {
      'Content-Type': 'custom complex media type here',
      'Authorization': 'Bearer ' + accessToken // if api is secured
    },
    protocol: 'https:',
    hostname: 'hostname.com',
    port: 443,
    path: '/api/path/to/method'
  };

  request.on('response', (response) => {
    console.log(`STATUS: ${response.statusCode}`);
    resolve(response);

    response.on('error', (error) => {
      console.log(`ERROR: ${JSON.stringify(error)}`);
      reject(error);
    })
  });

  request.end(JSON.stringify(usageData));

Надеюсь, это поможет.

...