DotNetBrowser를 사용하여 ResponseBytes 수정

Nov 07 2020

견본:

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; -불가능하기 때문에

이 코드를 어떻게 변환 할 수 있습니까? 스크립트 컨텍스트 생성 전에 실제 데이터를 수정해야하기 때문입니다.

답변

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

나는 목발과 그 일을 만들었습니다.

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