// 通用的GET代理服务器
router.get("/api/proxy", (req, res)=>{
//
// 拼接完整请求地址
let url = ""
for (var k in req.query){
if (k!="url"){
let v = req.query[k]
url += `&${k}=${v}`
}else{
url += req.query[k]
}
}
console.log(url)
// 1.编码字符串
url = encodeURI(url)
console.log(url)
// 2.服务器端使用http向第三方接口发起请求 拿回数据
http.get(url, function(response){
let data = Buffer.alloc(0)
response.on("data", function(d){
data += d
})
response.on("end", function(){
// 将拿到的数据返回给客户端
res.json({
code:200,
msg:"ok",
data:JSON.parse(data)
})
})
})
})
// 支持post请求的代理服务器
router.post("/api/proxy", (req, res)=>{
// url params
let reqUrl = req.body.url
let params = req.body
let urlObj = url.parse(reqUrl)
// 使用http模块,发起post请求
const postData = JSON.stringify(params)
console.log(postData)
const options = {
hostname: urlObj.hostname,
path:urlObj.path,
method:"POST",
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}
const request = http.request(options, (response) => {
let data = Buffer.alloc(0)
response.on('data', (chunk) => {
data += chunk
});
response.on('end', () => {
res.json({
code:200,
msg:"ok",
data:data
})
});
});
// 将数据写入请求主体。
request.write(postData);
request.end();
})
08-21
1453