ASP.NET WEBAPI 获取微信Access token

 /// <summary>
        /// 获取Access token
        /// </summary>
        /// <param name="appid"></param>
        /// <param name="secret"></param>
        /// <returns></returns>
        public static string GetAccessToken()
        {   
            //创建一个配置
            var Configuration = new ConfigurationBuilder()
                  //添加配置文件
                  .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
                  .Build();
            //赋值
            _config = Configuration;
            //读取key和secret
            string appid = _config["WeiXingSession:AppID"];
            string secret = _config["WeiXingSession:AppSecret"];

            string strJson = HttpRequestUtil.RequestUrl(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret));
            return GetJsonValue(strJson, "access_token");
        }

  /// <summary>
        /// HTTP请求功能
        /// </summary>
        internal class HttpRequestUtil
        {
            #region 请求Url,不发送数据
            /// <summary>
            /// 请求Url,不发送数据
            /// </summary>
            public static string RequestUrl(string url)
            {
                return RequestUrl(url, "POST");
            }
            #endregion

            #region 请求Url,不发送数据
            /// <summary>
            /// 请求Url,不发送数据
            /// </summary>
            public static string RequestUrl(string url, string method)
            {
                // 设置参数
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                CookieContainer cookieContainer = new CookieContainer();
                request.CookieContainer = cookieContainer;
                request.AllowAutoRedirect = true;
                request.Method = method;
                request.ContentType = "text/html";
                request.Headers.Add("charset", "utf-8");

                //发送请求并获取相应回应数据
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                //直到request.GetResponse()程序才开始向目标网页发送Post请求
                Stream responseStream = response.GetResponseStream();
                StreamReader sr = new StreamReader(responseStream, Encoding.UTF8);
                //返回结果网页(html)代码
                string content = sr.ReadToEnd();
                return content;
            }
            #endregion

        }
public static string GetJsonValue(string jsonStr, string key)
        {
            string result = string.Empty;
            if (!string.IsNullOrEmpty(jsonStr))
            {
                key = "\"" + key.Trim('"') + "\"";
                int index = jsonStr.IndexOf(key) + key.Length + 1;
                if (index > key.Length + 1)
                {
                    //先截逗号,若是最后一个,截“}”号,取最小值
                    int end = jsonStr.IndexOf(',', index);
                    if (end == -1)
                    {
                        end = jsonStr.IndexOf('}', index);
                    }

                    result = jsonStr.Substring(index, end - index);
                    result = result.Trim(new char[] { '"', ' ', '\'' }); //过滤引号或空格
                }
            }
            return result;
        }

 

上一篇:UnityWebRequest,Pos请求需要解码


下一篇:判断字符串是JSONObject还是JSONArray