我需要使用特定媒体类型使用HTTP端点,并且该端点不处理OPTIONS方法。
我想这使用常规浏览器是不可能的,但我相信应该可以使用Electron,因为我可以使用Postman执行相同的POST请求。
我必须使用什么样的框架才能实现这一目标?
我搞定了。如果您在Electron中使用Angular,jQuery或任何Javascript,它将使用浏览器的功能,因此如果POST具有复杂的媒体类型,也将发送OPTIONS预检,这是我的情况。
如果您使用Electron的http API,则不会这样做。文档在这里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));
希望这可以帮助。