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

  • 相关阅读:
    Dask教程
    python程序—利用socket监控端口
    python程序—封装案例
    python程序—士兵出击
    Python三大神器:装饰器,迭代器,生成器
    python程序—名片管理系统
    python程序—系统检测
    python程序—用户登录
    (七)javac编译
    Unity系统消息广播
  • 原文地址:https://www.cnblogs.com/dereckbu/p/8342816.html
Copyright © 2011-2022 走看看