public override bool OnQuery(CefBrowser browser, CefFrame frame, long queryId, string request, bool persistent, CefMessageRouterBrowserSide.Callback callback) { var options = new JsonSerializerOptions(); options.ReadCommentHandling = JsonCommentHandling.Skip; options.AllowTrailingCommas = true; var requestData = JsonSerializer.Deserialize <request>(request, options); var method = requestData.method ?? string.Empty; if (RoutePath.ValidMethod(method)) { new Task(() => { var id = requestData.id ?? string.Empty; var path = requestData.url ?? string.Empty; var parameters = requestData.parameters; var postData = requestData.postData; var routePath = new RoutePath(method, path); var response = _requestTaskRunner.Run(id, routePath, parameters, postData, request); var jsonResponse = response.ToJson(); callback.Success(jsonResponse); }).Start(); return(true); } callback.Failure(100, "Request is not valid."); return(false); }
/// <summary> /// The on query. /// </summary> /// <param name="browser"> /// The browser. /// </param> /// <param name="frame"> /// The frame. /// </param> /// <param name="queryId"> /// The query id. /// </param> /// <param name="request"> /// The request. /// </param> /// <param name="persistent"> /// The persistent. /// </param> /// <param name="callback"> /// The callback. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public override bool OnQuery(CefBrowser browser, CefFrame frame, long queryId, string request, bool persistent, CefMessageRouterBrowserSide.Callback callback) { var requestData = JsonMapper.ToObject(request); var method = requestData.Keys.Contains("method") ? requestData["method"].ToString() : string.Empty; method = string.IsNullOrWhiteSpace(method) ? string.Empty : method; if (RoutePath.ValidMethod(method)) { new Task(() => { var id = requestData.Keys.Contains("id") ? requestData["id"].ToString() : string.Empty; var path = requestData.Keys.Contains("url") ? requestData["url"].ToString() : string.Empty; var parameters = requestData.Keys.Contains("parameters") ? requestData["parameters"] : null; var postData = requestData.Keys.Contains("postData") ? requestData["postData"] : null; var routePath = new RoutePath(method, path); var response = RequestTaskRunner.Run(id, routePath, parameters, postData, request); string jsonResponse = response.EnsureJson(); callback.Success(jsonResponse); }).Start(); return(true); } callback.Failure(100, "Request is not valid."); return(false); }