標籤:style blog http color ar for 資料 sp div
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)); }
SmartWeatherAPI C#版