使用CEfSharp之旅11(使用CEfSharp之旅11)
使用CEfSharp之旅11(使用CEfSharp之旅11)
版本91
直接上代码:
替换下这个工具类即可。
不明白的进群加好友咨询。
public class request : IRequestHandler
{
public event Action<string> msg;
public event Action<string object> msg2;
public bool GetAuthCredentials(IWebBrowser browserControl IBrowser browser IFrame frame bool isProxy
string host int port string realm string scheme IAuthCallback callback)
{
return false;
}
public IResponseFilter GetResourceResponseFilter(IWebBrowser browserControl IBrowser browser IFrame frame IRequest request IResponse response)
{
if (response.MimeType.ToLower().IndexOf("text") > -1 || response.MimeType.ToLower().IndexOf("json") > -1)
{
var filter = new AppendResponseFilter(request.Url response.MimeType);
filter.VOIDFUN = Filter_VOIDFUN;
return filter;
}
return null;
}
private void Filter_VOIDFUN(string arg1 string arg2 string arg3 long arg4)
{
msg2?.Invoke(arg1 arg2);
}
public bool OnBeforeBrowse(IWebBrowser browserControl IBrowser browser IFrame frame IRequest request
bool isRedirect)
{
var m = request.Method;
msg?.Invoke(request.Url);
msg?.Invoke(m);
if (request.Method == "POST")
{
using (var postData = request.PostData)
{
if (postData != null)
{
var elements = postData.Elements;
var charSet = request.GetCharSet();
foreach (var element in elements)
{
if (element.Type == PostDataElementType.Bytes)
{
var body = element.GetBody(charSet);
msg?.Invoke(body);
}
}
}
}
}
return false;
}
public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl IBrowser browser IFrame frame IRequest request IRequestCallback callback)
{
var m = request.Method;
msg?.Invoke(request.Url);
msg?.Invoke(m);
if (request.Method == "POST")
{
using (var postData = request.PostData)
{
if (postData != null)
{
var elements = postData.Elements;
var charSet = request.GetCharSet();
foreach (var element in elements)
{
if (element.Type == PostDataElementType.Bytes)
{
var body = element.GetBody(charSet);
msg?.Invoke(body);
}
}
}
}
}
return CefReturnValue.Continue;
}
public bool OnCertificateError(IWebBrowser browserControl IBrowser browser CefErrorCode errorCode string requestUrl ISslInfo sslInfo IRequestCallback callback)
{
return true;
}
public bool OnOpenUrlFromTab(IWebBrowser browserControl IBrowser browser IFrame frame string targetUrl WindowOpenDisposition targetDisposition bool userGesture)
{
return false;
}
public void OnPluginCrashed(IWebBrowser browserControl IBrowser browser string pluginPath)
{
}
public bool OnProtocolExecution(IWebBrowser browserControl IBrowser browser string url)
{
return false;
}
public bool OnQuotaRequest(IWebBrowser browserControl IBrowser browser string originUrl long newSize IRequestCallback callback)
{
return false;
}
public void OnRenderProcessTerminated(IWebBrowser browserControl IBrowser browser CefTerminationStatus status)
{
}
public void OnRenderViewReady(IWebBrowser browserControl IBrowser browser)
{
}
public void OnResourceLoadComplete(IWebBrowser browserControl IBrowser browser IFrame frame IRequest request IResponse response UrlRequestStatus status long receivedContentLength)
{
}
public void OnResourceRedirect(IWebBrowser browserControl IBrowser browser IFrame frame IRequest request ref string newUrl)
{
}
public void OnResourceRedirect(IWebBrowser browserControl IBrowser browser IFrame frame IRequest request IResponse response ref string newUrl)
{
}
public bool OnResourceResponse(IWebBrowser browserControl IBrowser browser IFrame frame IRequest request IResponse response)
{
return false; ;
}
public bool OnSelectClientCertificate(IWebBrowser browserControl IBrowser browser bool isProxy string host int port X509Certificate2Collection certificates ISelectClientCertificateCallback callback)
{
return true;
}
public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser IBrowser browser IFrame frame IRequest request bool userGesture bool isRedirect)
{
var m = request.Method;
msg?.Invoke(request.Url);
msg?.Invoke(m);
if (request.Method == "POST")
{
using (var postData = request.PostData)
{
if (postData != null)
{
var elements = postData.Elements;
var charSet = request.GetCharSet();
foreach (var element in elements)
{
if (element.Type == PostDataElementType.Bytes)
{
var body = element.GetBody(charSet);
msg?.Invoke(body);
}
}
}
}
}
return false;
}
public IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser IBrowser browser IFrame frame IRequest request bool isNavigation bool isDownload string requestInitiator ref bool disableDefaultHandling)
{
return null;
}
public bool GetAuthCredentials(IWebBrowser chromiumWebBrowser IBrowser browser string originUrl bool isProxy string host int port string realm string scheme IAuthCallback callback)
{
return false;
}
public void OnDocumentAvailableInMainFrame(IWebBrowser chromiumWebBrowser IBrowser browser)
{
// throw new NotImplementedException();
}