ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(对自己真实,才不会被别人欺诈。——莎士比亚)
ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
const http = require('http');
const https = require('https');
const request = async (url, method, data = {}, options = {}) => {
const pro = async () => {
// 处理http或https
let sender = http;
if (url.includes('https')) {
sender = https;
}
// 针对不同的请求方式做不同的处理
if (['get'].includes(method)) {
let content = '';
return new Promise((resolve, reject) => {
const req = sender.request(url, options, (res) => {
res.setEncoding('utf8');
res.on('data', (chunk) => {
content += chunk;
});
res.on('end', () => {
return resolve(content);
});
});
req.on('error', (e) => {
return reject(e.message);
});
req.end();
})
}
if (['post', 'put', 'patch'].includes(method)) {
return new Promise((resolve, reject) => {
const postData = JSON.stringify(data);
options = {
method,
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(postData)
},
...options
};
let content = '';
const req = sender.request(url, options, (res) => {
res.setEncoding('utf8');
res.on('data', (chunk) => {
content += chunk;
});
res.on('end', () => {
return resolve(content);
});
});
req.on('error', (e) => {
return reject(e.message);
});
req.write(postData);
req.end();
});
}
throw new Error('request method invalid!');
};
const result = await pro();
console.log('result-----', result);
return {
data: result
};
}
request('http://www.baidu.com', 'get', {}, {});