zoukankan      html  css  js  c++  java
  • SmartWeatherAPI C#版

     private string GetKey(string areaId, string type, string date, string appId, string privateKey)
            {
                var hmac = HMACSHA1.Create();
                var publicKey = GetPublicKey(areaId, type, date, appId);
                var data = System.Text.Encoding.UTF8.GetBytes(publicKey);
                //密钥
                var key = System.Text.Encoding.UTF8.GetBytes(privateKey);
                hmac.Key = key;
    
                //对数据进行签名
                var signedData = hmac.ComputeHash(data);
                return Convert.ToBase64String(signedData);
            }
    
            private string GetPublicKey(string areaId, string type, string date, string appId)
            {
                return string.Format("http://open.weather.com.cn/data/?areaid={0}&type={1}&date={2}&appid={3}", areaId, type, date, appId);
            }
    
            /// <summary>
            /// 获取请求URL
            /// </summary>
            /// <param name="areaId">地区ID,例:北京=101010100</param>
            /// <param name="type">预警:alarm 实况:observe 指数:index 常规预报(24小时):forecast1d</param>
            /// <param name="date">日期,年月日时分,例:201410091040</param>
            /// <param name="appId"></param>
            /// <param name="privateKey"></param>
            /// <returns></returns>
            public string GetUrl(string areaId, string type, string date, string appId, string privateKey)
            {
                string key = GetKey(areaId, type, date, appId, privateKey);
    
                return string.Format("http://open.weather.com.cn/data/?areaid={0}&type={1}&date={2}&appid={3}&key={4}",
                  areaId, type, date, appId.Substring(0, 6), HttpUtility.UrlEncodeUnicode(key));
            }
  • 相关阅读:
    一致性哈希算法
    Tcp 3次握手 4次挥手
    计算机字符编码编年史
    虚拟机字节码指令表 JVM
    计算机是如何计算的、运行时栈帧分析(神奇i++续)
    神奇的i++
    记一次 springboot 参数解析 bug调试 HandlerMethodArgumentResolver
    String+、intern()、字符串常量池
    签名和加密的区别(详细)
    java之设计模式汇总
  • 原文地址:https://www.cnblogs.com/ycdx2001/p/4013339.html
Copyright © 2011-2022 走看看