微博 URL 短网址生成算法 - Java 版本

微博短链接是微博官方提供的网址压缩功能产生的一种只包含少量字符的短网址,例如:https://weibo.com/3086148515/I1IGF4Ud1 ,压缩后为:http://t.cn/A6vvAcHP 。这样的话,发微博时链接占用更少的字符长度。如果发微博时,内容中带了链接,例如视频地址、淘宝店地址,会被自动压缩为短链接。微博短链接可以直接在浏览器中访问,会被微博的网址解析服务器转换为原来的正常链接再访问。

本文描述微博 URL 短网址生成算法,编程语言是使用 Java

短网址举例

各大公司都已经提供短链接服务,例如百度、新浪、谷歌,短链接的优点是字符个数比较少,一般在 10 个以内,例如新浪的短网址可以把字符个数控制在 8 个以内【域名 t.cn 是单字符 t】。

日常大家见到的应用主要有 2 个地方:一个是微博内容中的网址,例如视频网址、电商商品网址,都会被压缩为 8 个字符以内,这样可以减少微博内容的长度【当然微博内容已经不再限制 140 个字符的长度,但是微博评论还是限制的,使用短网址减少字符的使用,何乐而不为】;另外一个就是邮件中的附件网址、图片网址,一般也都是短链接的形式。

代码示例

待整理。

备注

新浪短链接转换问题

根据新浪短链接,发送 http 请求

http://t.cn/RQxjblY
可以得到真实链接 (视频 / 官网 / 电商等等)

在公司真实环境 R 平台,总是请求超时,但是在跳板机及本机浏览器,都可以正常打开,说明链接没有问题

R 平台把 t.cn 解析为 180.149.135.224 (北京电信),无法连接

其他环境平台【测试、A 平台】把 t.cn 解析为 121.194.0.133 (北京教育网),可以正常连接

确定是 R 平台的网络问题,在网络未解决前,只能强制使用旧版短链接了,sinaurl.cn,因为无论是 R 平台还是跳板机服务器,都会把 sinaurl.cn 解析为 121.194.0.133,可以正常使用

【打不开】https://servernotfound.net/weibo-t-cn.html

https://www.v2ex.com/t/435222

此外,新浪有专门的接口用来转换链接,不需要模拟 http 请求

【已经下线】http://open.weibo.com/wiki/2/short_url/expand

虾丸派 wechat
扫一扫添加博主,进技术交流群,共同学习进步
永不止步
0%