zoukankan      html  css  js  c++  java
  • 百度地图 sn 计算方法 阿星小栈

    <?php
    
    //API控制台申请得到的ak(此处ak值仅供验证参考使用)
    $ak = 'yourak';
    
    //应用类型为for server, 请求校验方式为sn校验方式时,系统会自动生成sk,可以在应用配置-设置中选择Security Key显示进行查看(此处sk值仅供验证参考使用)
    $sk = 'yoursk';
    
    //以Geocoding服务为例,地理编码的请求url,参数待填
    $url = "http://api.map.baidu.com/geocoder/v2/?address=%s&output=%s&ak=%s&sn=%s";
    
    //get请求uri前缀
    $uri = '/geocoder/v2/';
    
    //地理编码的请求中address参数
    $address = '百度大厦';
    
    //地理编码的请求output参数
    $output = 'json';
    
    //构造请求串数组
    $querystring_arrays = array (
        'address' => $address,
        'output' => $output,
        'ak' => $ak
    );
    
    //调用sn计算函数,默认get请求
    $sn = caculateAKSN($ak, $sk, $uri, $querystring_arrays);
    
    //请求参数中有中文、特殊字符等需要进行urlencode,确保请求串与sn对应
    $target = sprintf($url, urlencode($address), $output, $ak, $sn);
    
    //输出计算得到的sn
    echo "sn: $sn 
    ";
    
    //输出完整请求的url(仅供参考验证,故不能正常访问服务)
    echo "url: $target 
    ";
    ?>
    </syntaxhighlight>
    <div class="separate-title">其中,caculateAKSN的定义如下:</div>
    
    <syntaxhighlight lang="null">
    function caculateAKSN($ak, $sk, $url, $querystring_arrays, $method = 'GET')
    {  
        if ($method === 'POST'){  
            ksort($querystring_arrays);  
        }  
        $querystring = http_build_query($querystring_arrays);  
        return md5(urlencode($url.'?'.$querystring.$sk));  
    }

    详情关注官网http://lbsyun.baidu.com/index.php?title=lbscloud/api/appendix#service-page-anchor2

  • 相关阅读:
    统计一段文字中出现频率最高的10个单词(c语言)
    java之过滤器Filter (应用场景)
    java之过滤器Filter
    Spring AOP
    清华大学iCenter区块链公开课 第二节
    学习区块链 第一节 精通比特币
    使用Shiro登录成功后,跳转到之前访问的页面实现
    windows下系统移植到linux下出现的问题
    mysql分页查询
    安卓开发随笔
  • 原文地址:https://www.cnblogs.com/dereckbu/p/8342816.html
Copyright © 2011-2022 走看看