Modifier ResponseBytes à l'aide de DotNetBrowser

Nov 07 2020

Échantillon:

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 = nouvelles données; - c'est impossible parce que

Comment pouvons-nous transformer ce code? car il faut modifier les données réelles avant la création du contexte du script

Réponses

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

J'ai fait la béquille et son travail:

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 { }
            };