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