首页 > 代码库 > 长长长字符串通过公共短网址服务生成二维码

长长长字符串通过公共短网址服务生成二维码

移动平台少不了跟二维码打交道,关于二维码,有篇好文章推荐 

目前我想实现一个功能,扫描二维码实现,当采用扫码app时转到软件市场下载,当采用已安装的指定app时自动登录,就想到了一个方案:

以下载apk链接作为url并且后面接上登录使用的身份密钥,

可是,这样的字符串好长啊!

我们知道二维码只能针对文本进行编码,并且如果字符串越长,可能越大,当然可以缩放可能又会导致扫描的时候验别率下降

咋办呢?

想到了微博用的短域名方案,经常见到的t.cn,经研究,只允许在weibo内部使用,并没有开放的api。

这个时候,还是百度和google解决问题

http://goo.gl/ 

http://dwz.cn/

其中,goo.gl号称最快的短域名服务,可惜某些原因,你懂的。。甚至直接在线二维码生成的功能,都省了后台的事了。。

好吧,回到正题,百度可以解决问题,通过post接口到指定的url可以得到longurl 及 tinyurl的相互转换,访问短url直接自动跳转

linux下用上万能的curl

curl -d "url=http://www.baidu.com/s?wd=%E7%9F%AD%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg" dwz.cn/create.php

响应:

{"tinyurl":"http:\/\/dwz.cn\/wP01K","status":0,"longurl":"http://www.baidu.com/s?wd=短域名服务","err_msg":""}

然后再使用短域名获得长在址

curl -d "tinyurl=http://dwz.cn/wP01K" dwz.cn/query.php

响应:

{"status":0,"longurl":"http://www.baidu.com/s?wd=短域名服务"}

如果直接访问将跳转

http://dwz.cn/wP01K

长长长字符串通过公共短网址服务生成二维码