Esempio n. 1
0
        public CoreWebView2WebResourceResponse DataLoad(CoreWebView2WebResourceRequest request)
        {
            var context  = GetQueryParameters(request.Uri);
            var response = Text(context["Name"]);

            return(response);
        }
Esempio n. 2
0
        void NavigateWithWebResourceRequestCmdExecuted(object target, ExecutedRoutedEventArgs e)
        {
            // Prepare post data as UTF-8 byte array and convert it to stream
            // as required by the application/x-www-form-urlencoded Content-Type
            var dialog = new TextInputDialog(
                title: "NavigateWithWebResourceRequest",
                description: "Specify post data to submit to https://www.w3schools.com/action_page.php.");

            if (dialog.ShowDialog() == true)
            {
                string       postDataString = "input=" + dialog.Input.Text;
                UTF8Encoding utfEncoding    = new UTF8Encoding();
                byte[]       postData       = utfEncoding.GetBytes(
                    postDataString);
                MemoryStream postDataStream = new MemoryStream(postDataString.Length);
                postDataStream.Write(postData, 0, postData.Length);
                postDataStream.Seek(0, SeekOrigin.Begin);
                CoreWebView2WebResourceRequest webResourceRequest =
                    WebViewEnvironment.CreateWebResourceRequest(
                        "https://www.w3schools.com/action_page.php",
                        "POST",
                        postDataStream,
                        "Content-Type: application/x-www-form-urlencoded\r\n");
                webView.CoreWebView2.NavigateWithWebResourceRequest(webResourceRequest);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 判断是否JSON格式
        /// </summary>
        /// <param name="request">CoreWebView2WebResourceRequest</param>
        /// <returns>IsJson</returns>
        protected bool IsJson(CoreWebView2WebResourceRequest request)
        {
            var contentType = request.Headers.GetHeader("Content-Type");

            return(string.IsNullOrWhiteSpace(contentType)
                ? false
                : Regex.IsMatch(contentType, @"application/json", RegexOptions.IgnoreCase));
        }
Esempio n. 4
0
        /// <summary>
        /// 获取编码方式
        /// </summary>
        /// <param name="request">CoreWebView2WebResourceRequest</param>
        /// <returns>Encoding</returns>
        protected Encoding GetEncoding(CoreWebView2WebResourceRequest request)
        {
            var encoding = request.Headers.GetHeader("Content-Type");

            ;

            if (string.IsNullOrEmpty(encoding) || !encoding.Contains("charset="))
            {
                encoding = "utf-8";
            }
            else
            {
                // match "charset=xxx"
                var match = Regex.Match(encoding, @"(?<=charset=)(([^;,\r\n]))*");

                if (match.Success)
                {
                    encoding = match.Value;
                }
            }

            return(Encoding.GetEncoding(encoding));
        }
Esempio n. 5
0
 /// <summary>
 /// 异步函数 执行请求委托
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public Task <CoreWebView2WebResourceResponse> ExecuteCoreAsync(CoreWebView2WebResourceRequest request) => Task.Run(() => Handler?.Invoke(request));
Esempio n. 6
0
 /// <summary>
 /// 同步函数 执行请求委托
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public CoreWebView2WebResourceResponse ExecuteCore(CoreWebView2WebResourceRequest request) => Handler?.Invoke(request);
Esempio n. 7
0
 /// <summary>
 ///  将 Request Json 数据反序列化
 /// </summary>
 /// <param name="request">CoreWebView2WebResourceRequest</param>
 /// <typeparam name="T">T</typeparam>
 /// <returns>T</returns>
 protected T DeserializeRequestJson <T>(CoreWebView2WebResourceRequest request)
 {
     if (!IsJson(request))
     {
         return(default);