Sửa đổi ResponseBytes bằng DotNetBrowser

Nov 07 2020

Mẫu vật:

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; - lý do không thể tin được của nó chỉ có được

Làm thế nào chúng ta có thể chuyển đổi mã này? vì cần phải sửa đổi dữ liệu thực trước khi tạo bối cảnh tập lệnh

Trả lời

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

Tôi đã làm nạng và công việc của nó:

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