Add pac proxy support

This commit is contained in:
trazyn 2019-01-19 19:21:51 +08:00
parent 3bf65d8233
commit 87dbf1d35e
2 changed files with 16 additions and 7 deletions

View File

@ -17,6 +17,7 @@
"dependencies": { "dependencies": {
"apicache": "^1.2.1", "apicache": "^1.2.1",
"express": "^4.16.3", "express": "^4.16.3",
"pac-proxy-agent": "^3.0.0",
"request": "^2.85.0" "request": "^2.85.0"
}, },
"devDependencies": { "devDependencies": {

View File

@ -1,6 +1,7 @@
const encrypt = require('./crypto') const encrypt = require('./crypto')
const request = require('request') const request = require('request')
const queryString = require('querystring') const queryString = require('querystring')
const PacProxyAgent = require('pac-proxy-agent')
// request.debug = true // 开启可看到更详细信息 // request.debug = true // 开启可看到更详细信息
@ -67,14 +68,21 @@ const createRequest = (method, url, data, options) => {
} }
const answer = { status: 500, body: {}, cookie: [] } const answer = { status: 500, body: {}, cookie: [] }
const settings = {
method: method,
url: url,
headers: headers,
body: queryString.stringify(data)
}
if (/\.pac$/i.test(options.proxy)) {
settings.agent = new PacProxyAgent(options.proxy)
} else {
settings.proxy = options.proxy
}
request( request(
{ settings,
method: method,
url: url,
headers: headers,
body: queryString.stringify(data),
proxy: options.proxy
},
(err, res, body) => { (err, res, body) => {
if (err) { if (err) {
answer.status = 502 answer.status = 502