首页
微语
统计
友链
留言
memos
圈子
图床
推荐
相册
网站监控
VPS监控
Search
1
实现typecho微信时光机功能的图文教程
47,925 阅读
2
为Typecho添加webp解析
43,572 阅读
3
Memos备忘录,记录瞬间想法
28,003 阅读
4
emlog数据成功迁移到typecho
27,847 阅读
5
Jasmine - 简约、美观的博客主题
26,573 阅读
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
排行榜    
登录
/
注册
Search
标签搜索
wordpress
发布
插件
免费
教程
typecho
EMlog
PHP
代码
CSS
华为
图片
代码修改
安装
评论
手机
诺基亚
微信
文章
智能
Chen'mo
累计撰写
1,269
篇文章
累计收到
378
条评论
首页
栏目
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
页面
微语
统计
友链
留言
memos
推荐
相册
网站监控
VPS监控
搜索到
1
篇与
的结果
2020-04-21
新浪、百度短链的生成
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 请求,获取301、302后的url,有利有弊,使用了2种方式获取,其他的语言模仿写就可以了。里面的SOMap为我的封装,其实就是一个map,我为了方便链式变成继承了LinkedHashMap。另外AllClientPNames.HANDLE_REDIRECTS = "http.protocol.handle-redirects"。版权所属:SO JSON在线解析原文地址:https://www.sojson.com/blog/330.html
2020年04月21日
1,998 阅读
0 评论
0 点赞