zoukankan      html  css  js  c++  java
  • 学习记录

    持续更新

    1. cache

    2. 获取微信AccessToken

    3. 获取微信小程序码

    4. 获取微信AccessToken(使用HttpClient)

    5. 获取微信小程序码(使用HttpClient)

    Cache

    推荐博客:细说 ASP.NET Cache 及其高级用法

     1      #region 缓存
     2 
     3         /// <summary>
     4         /// 设置Cache
     5         /// </summary>
     6         /// <param name="key">cache名称</param>
     7         /// <param name="value">cache值</param>
     8         void SetCacheData(string key, string value,DateTime time)
     9         {
    10             Cache cache = HttpContext.Current.Cache;
    11             cache["test"] = 1;
    12             cache.Insert(key, value, null, time, Cache.NoSlidingExpiration);
    13         }
    14 
    15         /// <summary>
    16         ///  获取 cache
    17         /// </summary>
    18         /// <param name="key">cache值</param>
    19         /// <returns></returns>
    20         object GetCacheData(string key)
    21         {
    22             Cache cache = HttpRuntime.Cache;
    23             if (cache[key] != null)
    24             {
    25                 return cache[key];
    26             }
    27             else
    28             {
    29                 return "";
    30             }
    31         }
    32 
    33         /// <summary>
    34         /// 判断指定Cache是否存在
    35         /// </summary>
    36         /// <param name="key"></param>
    37         /// <returns></returns>
    38         bool IsCacheExits(string key)
    39         {
    40             Cache s = HttpRuntime.Cache;
    41             return s[key] != null;
    42         }
    43 
    44         /// <summary>
    45         /// 移除指定Cache
    46         /// </summary>
    47         /// <param name="key">cache名称</param>
    48         void RemoveCacheData(string key)
    49         {
    50             Cache cache = HttpRuntime.Cache;
    51             cache.Remove(key);
    52         }
    53 
    54         /// <summary>
    55         /// 移除所有cache
    56         /// </summary>
    57         void RemoveAllCacheData()
    58         {
    59             Cache cache = HttpRuntime.Cache;
    60             IDictionaryEnumerator cachenEunm = cache.GetEnumerator();
    61             while (cachenEunm.MoveNext())
    62             {
    63                 cache.Remove(cachenEunm.Key.ToString());
    64             }
    65         }
    66         #endregion
    Cache

    获取微信Access_Token

     1  class WxResult
     2     {
     3         public string access_token { get; set; }
     4         public string expires_in { get; set; }
     5     }
     6 
     7 
     8         /// <summary>
     9         /// 缓存的是整个微信返回的Json,可以转换成对象获取Access_Token
    10         /// </summary>
    11         /// <returns></returns>
    12         string  GetAccessToken()
    13         {
    14             var appid = "";
    15             var appresect = "";
    16             //判断Access_Token是否存在
    17             if (IsCacheExits("Access_Token"))
    18             {
    19                 return GetCacheData("Access_Token").ToString();
    20             }
    21             else
    22             {
    23                 var url =
    24                     $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={appresect}";
    25                 var accesstoken = HttpGetValue(url);
    26                 SetCacheData("Access_Token",accesstoken,DateTime.Now.AddHours(2));//这里缓存的是整个对象
    27                 return accesstoken;
    28             }
    29         }
    30 
    31         /// <summary>
    32         /// Get方式请求 获取微信返回的json
    33         /// </summary>
    34         /// <param name="url"></param>
    35         /// <returns></returns>
    36         string HttpGetValue(string url)
    37         {
    38             //创建一个HttpWebRequest
    39             HttpWebRequest webRequest = WebRequest.CreateHttp(url);
    40             //GET 方式传输 
    41             webRequest.Method = "GET";
    42             //获取返回
    43             WebResponse webResponse = webRequest.GetResponse();
    44             //从StramReader中读取返回的流
    45             string streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8).ReadToEnd();
    46             return streamReader;
    47         }
    48 
    49 //调用
    50  var accesstoken = GetAccessToken();
    51                 //需要引用Newtonsoft.Json
    52                 var wxRes = JsonConvert.DeserializeObject<WxResult>(accesstoken);
    53                 accesstoken = wxRes.access_token;
    Access_Token

    获取微信小程序码

     1      void HtppPostValue(string accessToken)
     2         {
     3             var url = $"https://api.weixin.qq.com/wxa/getwxacode?access_token={accessToken}";
     4             HttpWebRequest webRequest = WebRequest.CreateHttp(url);
     5             webRequest.Method = "POST";
     6             string str = "{"path":" path","width":1000}";
     7             byte[] data = Encoding.UTF8.GetBytes(str);
     8             webRequest.ContentLength = data.Length;
     9             Stream outStream = webRequest.GetRequestStream(); //写入的流
    10             outStream.Write(data, 0, data.Length);
    11             outStream.Close();
    12             HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse;
    13             Stream insStream = response.GetResponseStream();
    14             var imgName = DateTime.Now.Millisecond + ".jpg";
    15             var path = MapPath("/Content/" + imgName);
    16             Image img = Image.FromStream(insStream);
    17             img.Save(path);
    18         }
    小程序码

    获取微信Access_Token   使用HttpClient

     1       string GetAccessTokenWithHttpClient()
     2         {
     3             var appid = "自己AppID";
     4             var appresect = "自己Appresect";
     5             //实例化HttpClient 对象
     6             HttpClient client = new  HttpClient();
     7             var url =
     8                 $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={appresect}";
     9             //使用GetAsybc(string url)方法异步获取HttpResponseMessage  .Result使用的是同步方法
    10             HttpResponseMessage responeseMessage = client.GetAsync(url).Result;
    11             client.Dispose();
    12             //返回的是一个Json对象
    13             return responeseMessage.Content.ReadAsStringAsync().Result;
    14         }
    使用HttpClient获取Aceess_Token

    获取微信小程序码  使用HttpClient

     1  void PostAccessTokenWithHttpClient(string accessToken)
     2         {
     3             var url = $"https://api.weixin.qq.com/wxa/getwxacode?access_token={accessToken}";
     4             string str = "{"path":" path","width":1000}";
     5             //实例化HttpClient 对象
     6             HttpClient client = new HttpClient();
     7             // 把需要传输的转换HttpContent 对象
     8             HttpContent content = new StringContent(str,Encoding.UTF8);
     9             //使用PostAsync(string url, HtppContent content).Result 获取返回的响应消息
    10             HttpResponseMessage response = client.PostAsync(url, content).Result;
    11             //从响应消息中获取返回的信息 使用Result 同步方法
    12            Stream stream =  response.Content.ReadAsStreamAsync().Result;      
    13             //二进制流转换成Img
    14             using (Image img = Image.FromStream(stream))
    15             {
    16                 var imgName ="123哈哈"+ DateTime.Now.Millisecond + ".jpg";
    17                 var path = MapPath("/Content/" + imgName);
    18                 img.Save(path);
    19             }
    20          
    21         }
    获取微信小程序 使用HttpClient

    FriendlyUrl 友好Url

    推荐博客:如何在Asp.Net  WebForm使用FriendsUrls

     1   void Application_Start(object sender, EventArgs e)
     2         {
     3             // 在应用程序启动时运行的代码
     4           var settings = new FriendlyUrlSettings();
     5             //执行重定向得模式  枚举
     6             settings.AutoRedirectMode = RedirectMode.Temporary;
     7             //启用友好Url
     8             routes.EnableFriendlyUrls(settings);
     9         }
    10 
    11 protected void Page_Load(object sender, EventArgs e)
    12         {
    13             var path = Request.GetFriendlyUrlFileVirtualPath();//返回虚拟路径
    14             var ext = Request.GetFriendlyUrlFileExtension();//返回物理文件扩展名
    15             IList<string> str = Request.GetFriendlyUrlSegments();//获取url得参数,一个泛型
    16             Response.Write($"虚拟路径:{path};物理文件路径扩展名:{ext}<br />");
    17             if (str.Count > 0)
    18             {
    19                 foreach (string s in str)
    20                 {
    21                     Response.Write($"参数:{s}");
    22                 }
    23                 
    24             }
    25 
    26             string friendUrl = FriendlyUrl.Resolve(path);//解析处理成友好url虚拟路径
    27             Response.Write($"友好路径:{friendUrl}<br />");
    28            string s1 =  FriendlyUrl.Href("~/RoutePage", "1", "22");
    29             Response.Write(s1);
    30         }
    FriendsUrls
  • 相关阅读:
    Nginx Record
    Go 查找元素
    博客转移公告
    模板库
    模板库
    【BZOJ2276】Temperature
    【BZOJ3524】Couriers
    【BZOJ4458】GTY的OJ
    AtCoder Grand Contest 007
    Editing 2011-2012 ACM-ICPC Northeastern European Regional Contest (NEERC 11)
  • 原文地址:https://www.cnblogs.com/xinqi1995/p/9989923.html
Copyright © 2011-2022 走看看