using AllBase; using CefSharp; using CefSharp.WinForms; using NaiBa.CefHelper; using NaiBa.CefHelper.Handler; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using TemuKJD.BaseForms; using TemuKJD.Helper; using Work; namespace TemuKJD.ToolForms { public partial class GetJuShuitanProdForm : BaseForms.BaseForm { string InitUrl = "https://sc.scm121.com/suppliersManage/suppliersList/onlineSuppliers"; public ChromiumWebBrowser cefWebBrowser = null; private string currentUrl = ""; public GetJuShuitanProdForm() { InitializeComponent(); } private void GetJuShuitanProdForm_Load(object sender, EventArgs e) { InitCef(); } void InitCef() { if (cefWebBrowser == null) { cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(InitUrl, false); CustomResourceRequestHandlerLocal resourceRequestHandler = new CustomResourceRequestHandlerLocal(); resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete; resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad; cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler); var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow); cefWebBrowser.LifeSpanHandler = lifeSapnHandler; cefWebBrowser.KeyboardHandler = new KeyboardHandler(); cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd; cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged; cefWebBrowser.LoadError += CefWebBrowser_LoadError; cefWebBrowser.Dock = DockStyle.Fill; Invoke(new Action(() => { splitContainer1.Panel1.Controls.Add(cefWebBrowser); //cefWebBrowser.Load(shopMainUrl); })); } Task.Run(() => { string serverCookie = ""; var url = BaseClass.BuildObjString("user/get_scm121_cookie"); var data = UserLogin.GetSignaturex(); var result = GetHtml.PostUtf8(url, data); if (!result.Contains("\"code\":200")) result = GetHtml.PostUtf8(url, data); List cookieLst = new List(); try { serverCookie = JsonHelper.SerializeObject(JsonHelper.JObjectParse(result)["cookie"]); cookieLst = JsonHelper.DeserializeJsonToList(serverCookie); if (cookieLst == null) cookieLst = new List(); } catch { } // cef138必须init后方可设置或删除cookie while (!cefWebBrowser.IsBrowserInitialized || !cefWebBrowser.GetBrowser().MainFrame.IsValid) Thread.Sleep(20); CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null)); //cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager //if (this.openType != EnumOpenType.login) { //var t = CEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), cefWebBrowser.GetCookieManager(null)); foreach (var cook in cookieLst) { var t = CEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", cefWebBrowser.GetCookieManager(null)); t.Wait(5000); } } cefWebBrowser.Load(InitUrl); }); } private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) { } private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request) { } private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request) { return false; } private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e) { if (this.Created && !this.Disposing && !this.IsDisposed) Invoke(new Action(() => { currentUrl = e.Address; txtAddress.Text = e.Address; })); } private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e) { } private void btnImportCookie_Click(object sender, EventArgs e) { Task.Run(() => { var t = CEFBrowser.SetCookieAsync("scm121.com", txtCookie.Text, cefWebBrowser.GetCookieManager(null)); t.Wait(5000); cefWebBrowser.Load(InitUrl); }); } private void btnSaveCookie_Click(object sender, EventArgs e) { List cookieList = CEFBrowser.GetCookieList(".scm121.com", cefWebBrowser.GetCookieManager(null)); var url = BaseClass.BuildObjString("user/update_scm121_cookie"); var data = UserLogin.GetSignaturex(); data += "&cookie=" + GetHtml.UrlEncodeUtf8(JsonHelper.SerializeObject(cookieList)); var result = GetHtml.PostUtf8(url, data); if (!result.Contains("\"code\":200")) result = GetHtml.PostUtf8(url, data); if (result.Contains("\"code\":200")) BaseMsgForm.ShowInfo("保存成功"); else BaseMsgForm.ShowInfo("保存失败,请重试"); } private void btnRefreshCookie_Click(object sender, EventArgs e) { //var result = GetHtml.PostUtf8("https://api.weixin.qq.com/shop/ec/basics/img/upload?access_token=100_Kn3u6mev0uip-WUPSgxXWHrHldjOP0Ewjw8n18LmGcq2pWbjn4BJukPkGZt0gzgJ1Hd6bRM2TXUDTEhwM7VULSl_P-pVHSVPHlE6ZvdXfD6djB1f2WEibY7jWaZLaD24cBUxLM-mSGxjR7i7IBBeAHDOHH&upload_type=http://img.alicdn.com/imgextra/i2/2215107627344/O1CN01eM6hZu247bV94MWKH_!!2215107627344.jpg&resp_type=1", ""); // } } }