8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png
小米主题商店下载地址解析
aiyun 2018-11-13

小米主题商店地址:http://zhuti.xiaomi.com/

上面有灰常多的主题,虽然说下载下来也不能直接安装,但是里面的很多资源还是非常不错的,小米官方并没有提供直接下载的地址,下面说一下如何解析

访问一个主题链接,地址如下

http://zhuti.xiaomi.com/detail/6c112791-5607-4242-b1a1-a2d6ca804544

这个地址detail后面的一串文本就是主题唯一标识,6c112791-5607-4242-b1a1-a2d6ca804544

GET访问如下的地址即可获取json数据

http://thm.market.xiaomi.com/thm/download/v2/6c112791-5607-4242-b1a1-a2d6ca804544

其中的6c112791-5607-4242-b1a1-a2d6ca804544也就是要下载主题的唯一标识,访问地址会返回一个json数据

{
  "apiCode": 0,
  "apiData": {
    "downloadUrl": "http://f1.market.xiaomi.com/download/ThemeMarket/09863840ef64c4d02209a5929d55d2bec9f82a6ee/呆萌跳跳闹旺财-1.0.0.0.mtz",
    "fileHash": "ed824ae8a458c0fabf796a7c0e7027b3c2e3cb67",
    "fileSize": 28708717
  }
}

 

例子编写

数据已经很明白了,downloadUrl后的数据就是真实下载地址,那么下面使用代码编写一个小小的例子

PHP+Jquery

由于小米服务器返回是json非jsonp,所以不能使用ajax直接跨域请求,那么就需要结合PHP实现跨域请求数据了

首先创建一个PHP文件,作为访问请求,代码如下

<?php
if(isset($_GET['id']))
{
    $url="http://thm.market.xiaomi.com/thm/download/v2/".$_GET['id'];
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
    $result = curl_exec($ch);
    curl_close($ch);
    echo $result;
}
?>

接着创建用户界面和响应代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script>
    <title></title>
  </head>
  <body>
    请输入下载地址<input type="text" id="url" style="width: 50%" />
    <button id="go">解析</button>
    <div id="downurl">点击解析后这儿会显示下载地址</div>

  </body>
  <script>
    $('#go').click(function(){
      var value=$("#url").val();
            value=value.substring(31);
      $.getJSON("d.php",{id:value}, function(result){
    $("#downurl").html('<a href="'+result.apiData.downloadUrl+'">点击下载</a>');});
    });
  </script>
</html>

 

jquery请自行引入,点击按钮后响应事件,获取图中文本框的值,然后进行文本截取,截取完成后使用jquery发送给php进行处理,接着将PHP返回的json解析,并且改变网页源码中的div,生成下载地址

代码效果

最新回复 (0)
    • Ai云
      2
        立即登录 立即注册
返回