const axios = require('axios-https-proxy-fix') const TimeKit = require('./time-kit') class HttpKit {} const isDev = process.env.USER === 'skyfffire' const opts = {} if (isDev) { opts.host = '127.0.0.1' opts.port = 9080 } HttpKit.request = async function (url, data, method, headers={}) { const params = {} params.timeout = 3 * 1000 params.method = method params.url = url params.data = data params.headers = headers if (isDev) params.proxy = JSON.parse(JSON.stringify(opts)) if (method === 'get') { return await axios.get(url, { proxy: params.proxy, headers: headers }).catch(error => Promise.reject({ rst: false, data: error.response.data })) } else if (method === 'post') { return await axios.post(url, data,{ proxy: params.proxy, headers: headers }).catch(error => Promise.reject({ rst: false, data: error.response.data })) } else { return await axios(params).catch(error => { Promise.reject({ rst: false, data: error.response.data }) }) } } HttpKit.post = async function(url, data, headers) { try { return await HttpKit.request(url, data, 'post', headers) } catch (e) { const msg = 'Caught post error: ' + JSON.stringify(e) + ', ' + url if (msg.indexOf('cannot') === -1 && msg.indexOf('timeout') === -1 && msg.indexOf('{}') === -1 && msg.indexOf('server error') === -1) { let time = TimeKit.getTimeByMillisecond(new Date().getTime()) console.error(time, msg) } return e } } HttpKit.get = async function(url, headers) { try { return await HttpKit.request(url, {}, 'get', headers) } catch (e) { const msg = 'Caught get error: ' + JSON.stringify(e) + ', ' + url if (msg.indexOf('cannot') === -1 && msg.indexOf('timeout') === -1 && msg.indexOf('{}') === -1 && msg.indexOf('server error') === -1) { let time = TimeKit.getTimeByMillisecond(new Date().getTime()) console.error(time, msg) } return e } } module.exports = HttpKit