zoukankan      html  css  js  c++  java
  • json格式化与cefsharp简单使用

    {
      "details": {
        "threeds2.fingerprint": "123"
      },
      "paymentData": "456"
    }

    jobj.SelectToken("details.['threeds2.fingerprint']")).Value<string>();

    CefSettings settings = new CefSettings();
    settings.Locale = "zh-CN";
    settings.AcceptLanguageList = "zh-CN";
    settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36";
    Cef.Initialize(settings);

    this.chromiumWebBrowser1.RequestHandler = new MyBasicRequestHandler();

    this.chromiumWebBrowser1.Load("https://ditu.sossss.com/");

     
    
    
        public class MyCustomResourceRequestHandler : CefSharp.Handler.ResourceRequestHandler
        {
            private readonly System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
    
    
            public delegate void MyInvoke(string str1);
    
    
            protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
            {
                return new CefSharp.ResponseFilter.StreamResponseFilter(memoryStream);
            }
    
            protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
            {
                //You can now get the data from the stream
                var bytes = memoryStream.ToArray();
    
                if (response.Charset == "utf-8")
                {
                    var input = System.Text.Encoding.UTF8.GetString(bytes);
                    if (input.IndexOf("bounds") == -1)
                    {
                        return;
                    }
                    string pattern = @"sjQueryd+_d+(";
                    string val1 = Regex.Replace(input, pattern, "").Replace("", """);
                    val1 = val1.Substring(0, val1.LastIndexOf(");"));
                    JObject joResponse = JObject.Parse(val1);
    
                    var obj = joResponse.SelectToken("poi.['bounds']");
                    if (obj == null)
                    {
                        return;
                    }
                    SystemHandler.Instance.Bounds = joResponse["poi"]["bounds"].ToString();
                    SystemHandler.Instance.Address = joResponse["poi"]["address"].ToString();
                    SystemHandler.Instance.Adcode = joResponse["poi"]["adcode"].ToString();
                    SystemHandler.Instance.Name = joResponse["poi"]["name"].ToString();
                }
                else
                {
                    //Deal with different encoding here
                }
            }
    
            private void create_polygon(string bounds2)
            {
                IWorkspaceEdit pWspEdit = SystemHandler.Instance.Workspace as IWorkspaceEdit;
                pWspEdit.StartEditing(false);
                //pWspEdit.StartEditOperation();
    
                var bounds = "32.393310,119.410623;32.393336,119.411476;32.396008,119.411320;32.395951,119.410533;32.396208,119.410493;32.396047,119.408827;32.394279,119.409105;32.394361,119.409721;32.394212,119.409738;32.394324,119.410487;32.393310,119.410623";
                IPointCollection pointCollection = new MultipointClass();
                var pts = bounds.Split(';');
                for (int i = 0; i < pts.Length - 1; i++)
                {
                    var arr = pts[i].Split(',');
                    var x = Convert.ToDouble(arr[1]);
                    var y = Convert.ToDouble(arr[0]);
                    var pPoint = new ESRI.ArcGIS.Geometry.Point();
                    pPoint.PutCoords(x, y);
                    pointCollection.AddPoint(pPoint, Type.Missing, Type.Missing);
                }
    
                var poly = Utilities.CreatePolygonByPoints(pointCollection);
                ITopologicalOperator ptopo = poly as ITopologicalOperator;
                ptopo.Simplify();
                var fea = SystemHandler.Instance.CourtLayer.FeatureClass.CreateFeature();
                fea.Shape = poly;
                fea.set_Value(fea.Fields.FindField("Name"), "aaaa");
                fea.Store();
    
                //pWspEdit.StopEditOperation();
                pWspEdit.StopEditing(true);
    
    
                Utilities.PanTo(fea, SystemHandler.Instance.ActiveView);
                SystemHandler.Instance.ActiveView.Refresh();
                MessageBox.Show("OK");
            }
        }
    
        public class MyBasicRequestHandler : CefSharp.Handler.RequestHandler
        {
            protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
            {
                //Only intercept specific Url's
                if (request.Url.Contains("restapi.map.so.com/newapi"))
                {
                    return new MyCustomResourceRequestHandler();
                }
                //Default behaviour, url will be loaded normally.
                return null;
            }
    
        }
    View Code
  • 相关阅读:
    flutter项目目录介绍
    flutter真机调试出现flutter Launching 'app' on No Devices.
    flutter run出现 Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    小程序uni-app中uview中select选择器第二次无法选中设置的默认值
    android studio编译flutter项目
    如何解决:Android Studio (version 4.1); Flutter plugin not installed and Dart plugin not installed errors
    CF Round 87
    CF #643(div.2)
    CF #642(div.3)
    CF #638(div.2)
  • 原文地址:https://www.cnblogs.com/yansc/p/13958144.html
Copyright © 2011-2022 走看看