private string RequestHeadersToJsonString(WebView2HttpRequestHeaderCollection requestHeaders) { StringBuilder builder = new StringBuilder("["); bool firstWrote = false; foreach (var header in requestHeaders.HeaderDictionary) { if (firstWrote) { builder.Append(", "); } firstWrote = true; builder.AppendFormat("{{\"name\":{0}, \"value\": {1} }}", EncodeQuote(header.Key), EncodeQuote(header.Value)); } builder.Append("]"); return(builder.ToString()); }
private string RequestToJsonString(WebView2WebResourceRequest request) { IStream content = request.Content; WebView2HttpRequestHeaderCollection headers = request.Headers; string method = request.Method; string uri = request.Uri; string result = "{"; result += "\"content\": "; result += (content == null ? "null" : "\"...\""); result += ", "; result += "\"headers\": " + RequestHeadersToJsonString(headers) + ", "; result += "\"method\": " + EncodeQuote(method) + ", "; result += "\"uri\": " + EncodeQuote(uri) + " "; result += "}"; return(result); }
private void WebView2NavigationStarting(object sender, Wrapper.NavigationStartingEventArgs e) { bool cancel = e.Cancel; bool isRedirected = e.IsRedirected; bool isUserInitiated = e.IsUserInitiated; WebView2HttpRequestHeaderCollection requestHeaders = e.HttpHeaderCollection; string uri = e.Uri; string message = "{ \"kind\": \"event\", \"name\": \"NavigationStarting\", \"args\": {"; message += "\"cancel\": " + BoolToString(cancel) + ", " + "\"isRedirected\": " + BoolToString(isRedirected) + ", " + "\"isUserInitiated\": " + BoolToString(isUserInitiated) + ", " + "\"requestHeaders\": " + RequestHeadersToJsonString(requestHeaders) + ", " + "\"uri\": " + EncodeQuote(uri) + " " + "}" + WebViewPropertiesToJsonString(_eventSourceWebView2) + "}"; PostEventMessage(message); }