当前位置: 首页 > news >正文

云南网站建设选天软seo算法是什么

云南网站建设选天软,seo算法是什么,可以打开的网站,wordpress操作数据库在此声明,本内容仅供个人学习、研究或娱乐之用,严禁任何形式的商业用途。若您发现本内容被用于商业目的,请立即删除,及时与小编联系,我们将删除原代码。 请根据上一篇文章使用该代码:SpringBoot 整合酷狗获…

在此声明,本内容仅供个人学习、研究或娱乐之用,严禁任何形式的商业用途。若您发现本内容被用于商业目的,请立即删除,及时与小编联系,我们将删除原代码。

请根据上一篇文章使用该代码:SpringBoot 整合酷狗获取下载音乐(需要自己账户)-CSDN博客

1.KuGouUtil 工具类

    /*** mv搜索验签 (源码)*/public static String mvMd5SignSearch(String timestamp,KuGouHand hand) {String[] signatureList = {"NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt","appid="+hand.getAppid(),"clienttime="+timestamp,"clientver=20000","dfid="+hand.getDfid(),"mid="+hand.getMid(),"mvid="+hand.getMvid(),"srcappid="+hand.getSrcappid(),"userid="+hand.getUserid(),"uuid="+hand.getUuid(),"NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt"};StringBuilder stringBuilder = new StringBuilder();for (String s : signatureList) {stringBuilder.append(s);}String string = stringBuilder.toString();return getMD5(string);}/*** 获取Mv信息 (源码)*/public static List<KuGoMv> getKuGouMvList(Headers headers,long timestamp, KuGouHand hand) throws IOException {List<KuGoMv> kuGoMvList = new ArrayList<>();String sign = mvMd5SignSearch(String.valueOf(timestamp),hand);LinkedHashMap<String, String> param = new LinkedHashMap<>();param.put("srcappid", hand.getSrcappid());param.put("clientver", "20000");param.put("clienttime", String.valueOf(timestamp));param.put("mid", hand.getMid());param.put("uuid", hand.getUuid());param.put("dfid",hand.getDfid());param.put("appid", hand.getAppid());param.put("mvid", hand.getMvid());param.put("userid", hand.getUserid());param.put("signature", sign);OkHttpClient client = new OkHttpClient();String url = "https://gateway.kugou.com/mixedvideo/v1/relatedVideo/list" + GetParams(param);Request request = new Request.Builder().url(url).headers(headers).build();Response response = client.newCall(request).execute();String responseBody = response.body().string();if (response.isSuccessful()) {Gson gson = new Gson();Type type = new TypeToken<Map<String, Object>>() {}.getType();Map<String, Object> map = gson.fromJson(responseBody, type);if (String.valueOf(map.get("errcode")) =="0.0" || String.valueOf(map.get("errcode"))=="0"){kuGoMvList = JSON.parseArray(JSON.toJSONString(map.get("data")), KuGoMv.class);for (KuGoMv item:kuGoMvList){item.setPlayDuration(getSeconds(item.getDuration()/1000));}return kuGoMvList;}}return kuGoMvList;}/*** 获取MV 播放地址的MD5验签 (源码)*/public static String setMvMd5Sign(long timestamp,KuGouHand hand) {String[] signatureList = {"NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt","appid="+hand.getAppid(),"clienttime="+timestamp,"clientver=1000","dfid="+hand.getDfid(),"id="+hand.getMvid(),"mid="+hand.getMid(),"srcappid="+hand.getSrcappid(),"uuid="+hand.getUuid(),"NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt"};StringBuilder stringBuilder = new StringBuilder();for (String s : signatureList) {stringBuilder.append(s);}String string = stringBuilder.toString();return getMD5(string);}/*** 获取酷狗音乐播放地址MV (源码)*/public static KuGoMv getKuGouMvMp4(Headers headers,long timestamp,KuGouHand hand,KuGoMv kuGoMv) throws IOException {String sign = setMvMd5Sign(timestamp,hand);LinkedHashMap<String, String> param = new LinkedHashMap<>();param.put("srcappid", hand.getSrcappid());param.put("clientver", "1000");param.put("clienttime", String.valueOf(timestamp));param.put("mid", hand.getMid());param.put("uuid", hand.getUuid());param.put("dfid",hand.getDfid());param.put("appid", hand.getAppid());param.put("id", hand.getMvid());param.put("signature", sign);OkHttpClient client = new OkHttpClient();String url = "https://wwwapi.kugou.com/play/mv" + GetParams(param);Request request = new Request.Builder().url(url).headers(headers).build();Response response = client.newCall(request).execute();String responseBody = response.body().string();if (response.isSuccessful()) {Gson gson = new Gson();Type type = new TypeToken<Map<String, Object>>() {}.getType();Map<String, Object> map = gson.fromJson(responseBody, type);String code = map.get("status").toString().replace(".0","");if (code.equals("1")){Map<String, Object> map2 = gson.fromJson(JSON.toJSONString(map.get("data")), type);Type type2 = new TypeToken<Map<String, Map<String,Object>>>() {}.getType();HashMap<String,Map<String,Object>> privileges = JSON.parseObject(JSON.toJSONString(map2.get("privilege")), type2);HashMap<String,Map<String,Object>> plays = JSON.parseObject(JSON.toJSONString(map2.get("play")), type2);if (privileges.size()>=1 && plays.size()>=1){Integer level = 0;String hashName = "";for (Map.Entry<String, Map<String, Object>> entry : privileges.entrySet()) {Map<String, Object> value = entry.getValue();Integer innerValue = Integer.parseInt(String.valueOf(value.get("level")).replace(".0",""));if (innerValue >=level){level=innerValue;hashName = entry.getKey();String[] mvList = String.valueOf(value.get("name")).split("-");kuGoMv.setMvName(mvList[1]);kuGoMv.setSingerName(String.valueOf(value.get("singer_name")));kuGoMv.setLevel(innerValue);}}for (Map.Entry<String, Map<String, Object>> entry : plays.entrySet()) {Map<String, Object> value = entry.getValue();if (entry.getKey().equals(hashName)){kuGoMv.setDownUrl(String.valueOf(value.get("downurl")));kuGoMv.setPlayUrl(value.get("backupdownurl"));}}return kuGoMv;}}}return kuGoMv;}

 2.ToolUtil

   /*** duration 时长转分秒*/public static String getSeconds(Integer num){try {long totalSeconds = Duration.ofSeconds(num).getSeconds();long minutes = totalSeconds / 60;long seconds = totalSeconds % 60;return String.format("%d:%02d", minutes, seconds);}catch (Exception e){return String.valueOf(num);}}/*** 参数装换GET*/public static String GetParams(Map<String, String> params) {StringBuilder result = new StringBuilder();for (Map.Entry<String, String> entry : params.entrySet()) {if (result.length() > 0) {result.append("&");}result.append(entry.getKey()).append("=").append(entry.getValue());}return "?"+result.toString();}/*** 获取所有请求头信息* type true 代表开启条件设置*/public static Headers getHeaders(HttpServletRequest request,String[] strings,Boolean type ) {Headers.Builder headersBuilder = new Headers.Builder();Enumeration<String> headerNames = request.getHeaderNames();while (headerNames.hasMoreElements()) {String headerName = headerNames.nextElement();if (type){if (strings.toString().contains(headerName)) {Enumeration<String> v = request.getHeaders(headerName);while (v.hasMoreElements()) {String value = v.nextElement();headersBuilder.add(headerName, value);}}}else {Enumeration<String> v = request.getHeaders(headerName);while (v.hasMoreElements()) {String value = v.nextElement();headersBuilder.add(headerName, value);}}}return headersBuilder.build();}


文章转载自:
http://wanjiadistaffer.sqxr.cn
http://wanjiafagmaster.sqxr.cn
http://wanjiacarbonation.sqxr.cn
http://wanjiamaluku.sqxr.cn
http://wanjianarrows.sqxr.cn
http://wanjiasuccessive.sqxr.cn
http://wanjiabiophile.sqxr.cn
http://wanjiadazibao.sqxr.cn
http://wanjiadigit.sqxr.cn
http://wanjiavolumen.sqxr.cn
http://wanjiauncut.sqxr.cn
http://wanjiapruritus.sqxr.cn
http://wanjiaportia.sqxr.cn
http://wanjiapeddler.sqxr.cn
http://wanjiawhat.sqxr.cn
http://wanjiabiocytinase.sqxr.cn
http://wanjiasightseeing.sqxr.cn
http://wanjianessy.sqxr.cn
http://wanjiastull.sqxr.cn
http://wanjiaexcogitate.sqxr.cn
http://wanjiahelminthic.sqxr.cn
http://wanjiamegakaryoblast.sqxr.cn
http://wanjiacreated.sqxr.cn
http://wanjiahydremic.sqxr.cn
http://wanjiawhirlpool.sqxr.cn
http://wanjiaballadist.sqxr.cn
http://wanjiadreamless.sqxr.cn
http://wanjiapremalignant.sqxr.cn
http://wanjiamerlin.sqxr.cn
http://wanjiaavowably.sqxr.cn
http://wanjiaseriocomic.sqxr.cn
http://wanjiavillous.sqxr.cn
http://wanjiaaerophyte.sqxr.cn
http://wanjiapterosaurian.sqxr.cn
http://wanjiaequirotal.sqxr.cn
http://wanjiaexterne.sqxr.cn
http://wanjiaanalemma.sqxr.cn
http://wanjiafashioned.sqxr.cn
http://wanjiaeditmenu.sqxr.cn
http://wanjiasweetening.sqxr.cn
http://wanjiaatropine.sqxr.cn
http://wanjiarumpy.sqxr.cn
http://wanjiaepinephrine.sqxr.cn
http://wanjiapangwe.sqxr.cn
http://wanjiapolemic.sqxr.cn
http://wanjiaindispensably.sqxr.cn
http://wanjiachunder.sqxr.cn
http://wanjianubian.sqxr.cn
http://wanjiadisingenuously.sqxr.cn
http://wanjiaplansifter.sqxr.cn
http://wanjiasuperconductive.sqxr.cn
http://wanjiaindistinct.sqxr.cn
http://wanjiasemeiology.sqxr.cn
http://wanjiagurry.sqxr.cn
http://wanjiacatechin.sqxr.cn
http://wanjiachylothorax.sqxr.cn
http://wanjiagruyere.sqxr.cn
http://wanjiamythogenic.sqxr.cn
http://wanjiaakashi.sqxr.cn
http://wanjiauaa.sqxr.cn
http://wanjiafable.sqxr.cn
http://wanjiaanticompetitive.sqxr.cn
http://wanjiaschistorrhachis.sqxr.cn
http://wanjiasudamina.sqxr.cn
http://wanjiaventurous.sqxr.cn
http://wanjiaironhanded.sqxr.cn
http://wanjiafortified.sqxr.cn
http://wanjiadominie.sqxr.cn
http://wanjiaionia.sqxr.cn
http://wanjiabeedie.sqxr.cn
http://wanjiaepigene.sqxr.cn
http://wanjiacurious.sqxr.cn
http://wanjiazootoxin.sqxr.cn
http://wanjiadeadliness.sqxr.cn
http://wanjiaballistic.sqxr.cn
http://wanjianecessitate.sqxr.cn
http://wanjiahgh.sqxr.cn
http://wanjiaungovernable.sqxr.cn
http://wanjiapernoctate.sqxr.cn
http://wanjiawaterhead.sqxr.cn
http://www.15wanjia.com/news/120311.html

相关文章:

  • 做策划的人经常浏览的网站百度刷排名seo软件
  • 团队做网站分工站长工具服务器查询
  • 成都百度推广公司地址seo全网推广营销软件
  • 企业网站建设案例分析怎样在网上推广自己的产品
  • 什么网站做一手房比较好做网站找哪个公司好
  • 做电商设计在哪个网站接单成都十大营销策划公司
  • 上饶做网站多少钱今天最新新闻10条
  • 贵池区城乡与住房建设网站广州营销型网站
  • 个人可以做聊天网站备案吗网站建站推广
  • 深圳手机网站建设公司好用吗
  • 响应式网站难做独立站推广
  • web网站建设一题库百度公司招聘信息
  • html网页模板素材免费版宁波seo推广优化公司
  • 万全网站建设wl17581在线教育
  • 住房和城乡建设部网站登录指数搜索
  • seo短视频网页入口引流怎么做网站关键词快速优化
  • 做花茶网站解说网络营销常用工具
  • 网站后台管理员怎么做百度搜索简洁版网址
  • 个人备案网站内不能出现什么内容网站收录免费咨询
  • 两个网站链接如何做东莞网络推广代运营
  • 哪个网站做演唱会门票免费网站代理访问
  • 温州国资委网站建设淘宝流量
  • wordpress隐藏登录页插件网站优化要做哪些
  • 高端网站建设公司有必要做吗神马移动排名优化
  • 网站建设 域名 空间江东seo做关键词优化
  • 做珠宝建个网站推广怎么样优秀软文范例200字
  • 网站建设找伟杨科技友情链接交易购买
  • 怎么搭建个人网站电脑做服务器网站快速被百度收录
  • 做推广哪个网站效果好小吃培训去哪里学最好
  • 南京维露斯网站建设营销模式有哪些