public class MyResponseFilter : CefResponseFilter { private MemoryStream outputStream = new MemoryStream(); /// <summary> /// /// </summary> /// <param name="dataIn">数据输入</param> /// <param name="dataInSize"></param> /// <param name="dataInRead"></param> /// <param name="dataOut">数据输出</param> /// <param name="dataOutSize"></param> /// <param name="dataOutWritten"></param> /// <returns></returns> protected override CefResponseFilterStatus Filter(UnmanagedMemoryStream dataIn, long dataInSize, out long dataInRead, UnmanagedMemoryStream dataOut, long dataOutSize, out long dataOutWritten) { dataInRead = 0; dataOutWritten = 0; byte[] buffer = new byte[4096]; int bytesRead = 0; do { bytesRead = dataIn.Read(buffer, 0, buffer.Length); if (bytesRead > 0) { outputStream.Write(buffer, 0, bytesRead); } } while (bytesRead > 0); byte[] outputBytes = outputStream.ToArray(); dataOut.Write(outputBytes, 0, outputBytes.Length); dataInRead = outputBytes.Length; dataOutWritten = outputBytes.Length; //var txt= Encoding.UTF8.GetString(outputBytes, 0, outputBytes.Length); return CefResponseFilterStatus.Done; } protected override bool InitFilter() { return true; } }
public class MyResourceRequestHandler : CefResourceRequestHandler { protected override CefCookieAccessFilter? GetCookieAccessFilter(CefBrowser browser, CefFrame frame, CefRequest request) { return null; } protected override CefResponseFilter? GetResourceResponseFilter(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response) { return new MyResponseFilter(); } }
private void MainWindow_GetResourceRequestHandler(object? sender, GetResourceRequestHandlerEventArgs e) { e.Handler = new MyResourceRequestHandler(); }
this.GetResourceRequestHandler += MainWindow_GetResourceRequestHandler;
标签:NanUI,网络,long,Length,override,new,拦截,bytesRead,outputBytes From: https://www.cnblogs.com/zhangliang2008/p/17730047.html