思路非常简单:
1. httpserver获取需要还原的url;
2. 使用httpclient递归请求这个url,直到发现http status not in (302, 301)为止。
3. 返回还原的原url。
好吧,代码如下:
复制代码 代码如下:
var net = require('net'),
http = require('http'),
url = require('url'),
fs = require('fs');
var DEFAULT_PORTS = {
'http:': 80,
'https:': 443
};
var INDEX_TPL = fs.readFileSync('index.html');
function _write(str, res, content_type) {
if(res.jsonp_cb) {
str = res.jsonp_cb + '("' + str + '")';
}
res.writeHead(200, {
'Content-Length': str.length,
'Content-Type': content_type || 'text/plain'
});
res.end(str);
};
function expand(short_url, res) {
var info = url.parse(short_url);
// console.log('info: ' + JSON.stringify(info));
if(info.protocol != 'http:') { // 无法请求https的url?
_write(short_url, res);
return;
}
var client = http.createClient(info.port || DEFAULT_PORTS[info.protocol], info.hostname);
var path = info.pathname || '/';
if(info.search) {
path += info.search;
}
var headers = {
host: info.hostname,
'User-Agent': 'NodejsSpider/1.0'
};
var request = client.request('GET', path, headers);
request.end();
request.on('response', function (response) {
if(response.statusCode == 302 || response.statusCode == 301) {
expand(response.headers.location, res);
} else {
_write(short_url, res);
}
});
};
//expand('http://sinaurl.cn/hbMUII');
// http服务
http.createServer(function(req, res){
if(req.url.indexOf('/api?') == 0) {
var params = url.parse(req.url, true);
if(params.query && params.query.u) {
if(params.query.cb) { // 支持jsonp跨域请求
res.jsonp_cb = params.query.cb;
}
expand(params.query.u, res);
} else {
_write('', res);
}
} else {
_write(INDEX_TPL, res, 'text/html');
}
}).listen(1235);
process.on('uncaughtException', function (err) {
console.log('Caught exception: ' + err);
});
启动你的web服务器吧:
$ node urlexpand.js
打开浏览器直接访问:
http://127.0.0.1:1235/api?u=http://is.gd/imWyT
或者访问我的测试服务器:
http://yongwo.de:1235/api?u=http://is.gd/imWyT&cb=foo
相关推荐:
AI翻译工具的革命-ChatGPT等技术让语言互通无碍,淘宝ai写作检测准吗
seo站内优化包括什么营销,seo站内优化操作流程 ,ai 玻璃图标
SEO优化关键技巧:提升网站排名的实战攻略,科大讯飞ai论文写作软件
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
seo稿件是什么意思,seo文章写作要求 ,ai写作未来展望和展望
SEO技巧提升网站流量:打造高效网站的关键策略,Ai测脸相
ChatGPT:人工智能对话新时代的领航者,ai音响华为还是小米好
ChatGPT付款银行卡被拒绝?解决方案全解析!,小发猫ai智能写作查重能过吗
SEO可以改变你的商业未来:如何通过优化提升网站流量和转化率,五粮液营销推广
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
为什么新手做seo好做,为什么要懂seo ,ai少女 3060显卡
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
ChatGPT桌面版无法加载?快速解决方案及常见问题解析,ai媚眼
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
SEO优化:如何让网站更具有吸引力,散文ai写作咒语是什么
什么是SEO优化方案,seo的优化方案 ,ai emorobot
SEO拓客,让您的业务飞速增长!,密云自适应网站建设
AI自动帮写,轻松应对内容创作挑战,赋能写作新未来,嘿科技ai
SEO站内优化:提升网站排名的核心策略,厦门市网站优化企业
好用的AI写作软件,让创作更高效
SEO快速优化文章排名:提升网站流量的必备技巧,ai小苹果会员分享
文章AI指令提升写作效率的智能助手
SEO门户:打造高效网站流量的关键利器,创意网站建设要求
“新热度”:引领潮流的力量,如何趋势的脉搏,浙江通用网站建设特点
AI代谢文章:从灵感到成果的创作革命
AI代写文章:高效创作的新风尚
seo需要保持什么心态,seo的要求 ,ai83562
SEO学费多少钱?揭秘SEO培训的投资价值与回报!,郴州网站推广多少钱一个
ChatGPT出现错误503?你需要知道的解决方案和应对策略,ai拉伸字效
SEO单页网站:助力企业在线营销的一站式解决方案,湖南视频网站优化方式
SEO优化需要花钱吗?从零起步,如何让SEO成为企业的“隐形财富”,字体如何往ai里面倒
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
优化页面-提升用户体验与搜索引擎排名的关键,绍兴视频营销推广
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
SEO基础知识解析:如何提升网站排名,助力企业成长,毕节企业建设网站
丹东抖音seo是什么,抖音seo引流 ,ai工具编写作业指导书
OpenAI注册问题解决方案:如何顺利通过手机号验证,反对ai头像
ChatGPT不能访问,我的学术水平直线下降,泰州大数据ai艾灸价格
AI写作的崛起-“只能AI写作”背后的巨大潜力,舞狮摄影ai
AI免费生成文字,打造创作新时代
ChatGPT美区要梯子吗?轻松畅享全球智能聊天体验,ai音位
什么是seo模型,seo模块总结 ,ai技术授课
SEO运营是什么职业,seo运营工程师招聘 ,把ai图层改横幅
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
为什么越来越多的人选择在知乎发布文章?这里面的机会你可能还没发现!,潍坊关键词排名提升
今时CMS:引领数字化转型的智慧之选,河南seo优化网站联系方式
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广