/// <summary>
        /// 获取阿里妈妈的Cookie
        /// </summary>
        /// <returns></returns>
        public static DataContainer GetLoginTokenCookies()
        {
            var container    = new DataContainer();
            var ckVistor     = new LazyCookieVistor();
            var _PageCooies  = ckVistor.LoadCookiesAsyc(GlobalContext.AlimamaSiteURL).Result;
            var json_cookies = JsonConvert.SerializeObject(_PageCooies);

            container.Result = json_cookies;


            return(container);
        }
        /// <summary>
        /// 内部类方法加载指定的搜索url
        /// 比如:在初始化的时候 刷新Cookie用 或者刷新 Cookie 获取其他
        /// </summary>
        /// <param name="searchUrl">请求指定的地址</param>
        /// <param name="timeOut">超时时间,不小于10秒,超时将返回加载超时</param>
        /// <returns></returns>
        protected Task <string> LoadUrlGetContentByCefBrowser(string searchUrl, int timeOut = 10000)
        {
            if (timeOut <= 10000)
            {
                timeOut = 10000;
            }

            try
            {
                //将事件消息模式转换为 task同步消息
                var  tcs = new TaskCompletionSource <string>();
                bool isProcessRequestEnd = false;


                //注册请求处理委托
                EventHandler <LoadEndEventArgs> handlerRequest = null;
                Action <string> disposeHandler = null;
                //资源释放委托
                disposeHandler = (state) =>
                {
                    try
                    {
                        if (tcs.Task.IsCompleted != true)
                        {
                            //设置返回结果为固定的内容
                            tcs.SetResult(state);
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.Error(ex);
                    }
                    finally
                    {
                        //线程锁打开自动进行下一个
                        waitHandler.Set();
                    }
                };

                //2 开始发送请求LoadString
                handlerRequest = (s, e) =>
                {
                    isProcessRequestEnd = true;//标识正在接受请求

                    try
                    {
                        string url = HttpUtility.UrlDecode(searchUrl);//e.Frame.Url
                        System.Diagnostics.Debug.WriteLine(string.Format("cef core loaded by :{0} ", url));
                        //刷新 cookie
                        if (!string.IsNullOrEmpty(url) && !url.Equals("about:blank"))
                        {
                            var ckVisitor = new LazyCookieVistor();
                            ckVisitor.LoadCookiesAsyc(url, true);
                        }
                    }
                    catch
                    { }


                    //mixdBrowser.CefLoader.LoadEnd -= handlerRequest;
                    disposeHandler("loaded");
                };
                //etaoBrowser.ERequestHandler.OnRequestTheMoniterdUrl += handlerRequest;
                if (null == mixdBrowser || null == mixdBrowser.CefBrowser)
                {
                    mixdBrowser = CookiedCefBrowser.CreateNewWebBrowser(searchUrl, handlerRequest)
                                  .ConfigureAwait(false)
                                  .GetAwaiter()
                                  .GetResult();
                }
                else
                {
                    //必须等待页面加载完毕,否则过期的Cookie无法刷新到最新
                    mixdBrowser.CefLoader.LoadEnd += handlerRequest;
                    mixdBrowser.CefBrowser.GetMainFrame().LoadUrl(searchUrl);
                }


                //回调终结请求阻塞
                TimerCallback resetHandler = (state) =>
                {
                    //对于超时的 直接杀死render 进程
                    if (isProcessRequestEnd == true)
                    {
                        return;
                    }
                    disposeHandler("timeout");
                };

                //超时监听
                var timeBong = new System.Threading.Timer(resetHandler, null, timeOut, Timeout.Infinite);

                //进入当前线程锁定模式
                waitHandler.WaitOne();

                mixdBrowser.Dispose();
                //线程后续执行后,表示任务完毕或者超时,释放定时器资源
                timeBong.Dispose();
                return(tcs.Task);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(Task.FromResult <string>(string.Empty));
        }