From 87dbf1d35e801184db6a42aa03d40da4470ce5fa Mon Sep 17 00:00:00 2001 From: trazyn Date: Sat, 19 Jan 2019 19:21:51 +0800 Subject: [PATCH] Add pac proxy support --- package.json | 1 + util/request.js | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 7af7f12..9227230 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "dependencies": { "apicache": "^1.2.1", "express": "^4.16.3", + "pac-proxy-agent": "^3.0.0", "request": "^2.85.0" }, "devDependencies": { diff --git a/util/request.js b/util/request.js index 361031d..ff8ff91 100644 --- a/util/request.js +++ b/util/request.js @@ -1,6 +1,7 @@ const encrypt = require('./crypto') const request = require('request') const queryString = require('querystring') +const PacProxyAgent = require('pac-proxy-agent') // request.debug = true // 开启可看到更详细信息 @@ -67,14 +68,21 @@ const createRequest = (method, url, data, options) => { } 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( - { - method: method, - url: url, - headers: headers, - body: queryString.stringify(data), - proxy: options.proxy - }, + settings, (err, res, body) => { if (err) { answer.status = 502 -- GitLab