You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.9 KiB
57 lines
1.9 KiB
const express = require("express"); |
|
const router = express.Router(); |
|
|
|
const AreaNameEnum = require('../enums/AreaNameEnum'); |
|
|
|
let UUIDUtil = require("../utils/UUIDUtil"); |
|
|
|
const Rs6Service = require("./service/Rs6Service"); |
|
|
|
rs6Service = new Rs6Service() |
|
|
|
router.post('/rsCookie', async (req, res) => { |
|
let uuid = UUIDUtil.uuid; |
|
|
|
let start = new Date(); |
|
try { |
|
let url = req.body['url']; |
|
let htmlBase64 = req.body['htmlBase64']; |
|
let cookieBase64 = req.body['cookieBase64']; |
|
let userAgentBase64 = req.body['userAgentBase64']; |
|
console.log(`${uuid};接收到 ${areaName} 请求:${url}`) |
|
// 参数判断 |
|
let areaCode = AreaNameEnum.getByAreaName(areaName).AREA_CODE; |
|
if (areaCode == null) { |
|
return res.status(500).send('error areaCode') |
|
} |
|
if (url == null || url === '') { |
|
return res.status(500).send('error url') |
|
} |
|
if (htmlBase64 == null || htmlBase64 === '') { |
|
return res.status(500).send('error html') |
|
} |
|
// 参数处理 |
|
let htmlStr = Buffer.from(htmlBase64, 'base64').toString('utf-8'); |
|
let cookieStr = null; |
|
if (cookieBase64 != null && cookieBase64 !== '') { |
|
cookieStr = Buffer.from(cookieBase64, 'base64').toString('utf-8'); |
|
} |
|
let userAgent = null; |
|
if (userAgentBase64 != null && userAgentBase64 !== "") { |
|
userAgent = Buffer.from(userAgentBase64, 'base64').toString('utf-8'); |
|
} |
|
// 执行 |
|
let cookies = await rs6Service.handle(url, uuid, htmlStr, cookieStr, userAgent) |
|
console.log(`${uuid};返回cookie ---->`, cookies) |
|
res.status(200).send(cookies); |
|
} catch (e) { |
|
console.error(e.stack) |
|
return res.status(500).send(e.message) |
|
} finally { |
|
console.log(`${uuid};rsCookie ${new Date() - start} ms`) |
|
} |
|
|
|
}) |
|
|
|
|
|
module.exports = router |