Modificar ResponseBytes usando DotNetBrowser

Nov 07 2020

Muestra:

br.instance.engine.Network.ResponseBytesReceived += (s, e) =>
            {
                try
                {
                    byte[] data = e.Data;
                    string resp = System.Text.Encoding.UTF8.GetString(data);
                    resp = resp.Replace("old value", "new value");
                    byte[] newdata = System.Text.Encoding.UTF8.GetBytes(resp);
                    //e.Data = newdata;
                    
                }
                catch { }
            };

e.Data = newdata; - es imposible porque solo conseguir

¿Cómo podemos transformar este código? porque es necesario modificar los datos reales antes de la creación del contexto del script

Respuestas

АрхиповВладимир Nov 07 2020 at 19:33

Hice muleta y su trabajo:

br.instance.engine.Network.ResponseBytesReceived += (s, e) =>
            {
                try
                {
                    byte[] data = e.Data;
                    string resp = System.Text.Encoding.UTF8.GetString(data);
                    string resp2 = resp.Replace("old value", "new value");
                    string urlr = e.UrlRequest.Url;
                    
                    if (e.UrlRequest.Url == urltext&&resp!=resp2)
                    {
                        br.instance.browser.MainFrame.LoadData(new LoadDataParameters(resp2)
                        {
                            BaseUrl = urltext,
                            MimeType = MimeType.TextHtml,
                            Replace = true,
                            TextEncoding = "UTF-8"
                        });
                    }
                }
                catch { }
            };