生成新浪短网址、百度短网址,t.cn / dwz.cn 的生成方式,短链还原

JSON 2019-06-03 11:23:41 77400

应本站用户要求开发了短链生成服务,市面上的短链鱼龙混杂,这里也说明一下这个背后的产业,我们在使用过程中请擦亮眼睛去使用。

短链工具地址:https://www.sojson.com/dwz.html


一、短链使用的风险

1、稳定性

    我们使用短链肯定希望短链服务稳定,现在开发成本低,导致随便几个小时就可以搞一套短链服务,买一个短一点的域名,开始开放出来给用户使用,用一段时间后,随着运营成本增加,说停用就停用了。

2、收费风险

    短链开始火的时候好多这样的产业滋生出来,一般手段是开发一个短链服务,好多都直接上百度推广,让你免费用,等你用一段时间后,开始拦截你的链接跳转,然后开始收费(一般理由为“由于大量用户举报,所以停封,需要付费解封”),而这个时候你的系统一般都上线了,或者都推广出去了,好多人短链服务生成都是为了降低二维码的复杂性,二维码都印好了推广出去了,不好修改,所以你没办法,必须付费。

二、短链的使用场景

1、短信带链接

    手机发短信的时候,由于字数限制,另外我们一般的链接过长,主要是因为域名过长,再加上乱七八糟的参数,发出去短信难看的很,用了短链后就很优雅了。

2、短链接生成二维码

    二维码的火爆和便捷,也带来了一个难题,我们都知道二维码表达的内容有限,内容越多,二维码看上去越复杂,而且识别率越低,尤其配置较低的手机比较难识别内容很多的二维码,我们用短链可以解决这个问题。先把长链转成短链,然后再去生成二维码

三、短链的生成    

1、百度短链(dwz.cn)生成

dwz.cn就是短网址的首拼音缩写,由百度提供服务。

优点:稳定,毕竟是大公司开发。有数据报表:https://dwz.cn/console/report

缺点:网址必须百度收录了才可以生成。

>>正规生成:

①.申请apikey

申请网址:https://dwz.cn/console/userinfo需要开通开发者,跟着提示走就可以了。

②.接口代码

常用的语言都有:https://dwz.cn/console/apidoc

然后HTTP调用即可生成。

抓包生成:

百度短网址的官方生成地址:https://dwz.cn/

生成的时候直接可以抓包:https://dwz.cn/admin/v2/create

参数就一个:{"url":"你要生成的URL"}

这里就不过多讲解。

2、新浪短链(t.cn)生成

主要讲解新浪短链,直接上代码。

//链接要做urlencode编码
const u = encodeURIComponent("你要转码的长连接");
$.ajax({
    url:"https://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long={%u}".fmt({u}),
    dataType:'jsonp',
    success:function (data) {
        if(data  && data.code ===1 ){
            var url = data.data.urls[0].url_short;
            outShortInfo(url);//输出短链方法
        }else{
            layer.msg('生成失败',so.defn);
        }
    }
});

直接  jsonp  调用,source直接使用2849184197即可,是官方的key,放心使用。

就一个参数url_long=你生成的URL,注意这里要做urlcode编码。

urlcode编码在线工具:https://www.sojson.com/encodeurl.html

四、短链的解码

每一个短链服务一般自己会对应一个解码服务,我懒得对接,而且现在的短链鱼龙混杂,所以我就直接写了一个通用的。直接上代码。

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.httpclient.params.HttpParams;

/**
 * 短链 解析成长链
 * @param url
 * @return
 */
public static SOMap parse(String url){
    HttpClient client = new HttpClient();
    HttpMethod method = new HeadMethod(url);
    try {
        HttpParams params = client.getParams();
        params.setParameter(AllClientPNames.HANDLE_REDIRECTS, false);
        client.executeMethod(method);
        String aurl = method.getURI().getURI();
        if(StringUtils.equals(url,aurl)){
            method.releaseConnection();
            method =   new GetMethod(url);
            params = client.getParams();
            params.setParameter(AllClientPNames.HANDLE_REDIRECTS, false);
            client.executeMethod(method);
            aurl = method.getURI().getURI();
            return SOMap.success().push("url",aurl);
        }
        method.releaseConnection();
        return SOMap.success().push("url",aurl);
    } catch (IOException e) {
        Header headers = method.getResponseHeader("Location");
        if(null == headers || null == ( url = headers.getValue())){
            return SOMap.error("解析失败,确认链接是否存在");
        }
    }
    return SOMap.success().push("url",url);

}

其实就是通过  http  请求,获取301302后的url,有利有弊,使用了2种方式获取,其他的语言模仿写就可以了。里面的SOMap为我的封装,其实就是一个map,我为了方便链式变成继承了LinkedHashMap。另外AllClientPNames.HANDLE_REDIRECTS = "http.protocol.handle-redirects"。


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/330.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
新浪t.cn)最新申请官方API的方法讲解。
2019年9月16日新浪API已经恢复使用,新浪服务官方已经宣布停用。本站已经攻克
SOJSON 使用又拍云 CDN 整体架构,解决百度 SEO 方案
下载的视频怎么去掉水印?
下载的视频怎么去掉水印?
【2020年】百度搜索词获取,获取百度搜索的关键词【真实有效】
百度秒收录教程,怎么做到百度秒收入你的页面,SEO 教程
Javascript 生成UUID,Java生成UUID
百度加强推送URL链接,百度SEO强行推送链接JavaScript代码案例讲解。
在线视频去水印工具,免费用记得收藏!
最新文章
SOJSON V6 JavaScript 解密技巧与分析 24
微信客服人工电话95068:如何快速解封微信账号(2025最新指南) 311
Java Http请求,HttpURLConnection HTTP请求丢失头信息,Head信息丢失解决方案 3725
实用API合集分享:教你轻松获取IP地址的API合集 5471
Linux I/O重定向 6170
Ruby 循环 - while、for、until、break、redo 和 retry 3608
Node.js:全局对象 3270
如何使用终端检查Linux上的内存使用情况 3383
JavaScript对象详细剖析 2882
Python print() 函数 2995
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 695750
免费天气API,天气JSON API,不限次数获取十五天的天气预报 688812
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 677021
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 560666
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 511143
Elasticsearch教程(四) elasticsearch head 插件安装和使用 483000
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 284349
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 245672
Elasticsearch教程(一),全程直播(小白级别) 230937
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 226616
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...