使用CEfSharp之旅(7)CEFSharp 拦截 http 请求 websocket 内容
生活随笔
收集整理的這篇文章主要介紹了
使用CEfSharp之旅(7)CEFSharp 拦截 http 请求 websocket 内容
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
使用CEfSharp之旅(7)CEFSharp 攔截 http 請(qǐng)求 websocket 內(nèi)容 原文:使用CEfSharp之旅(7)CEFSharp 攔截 http 請(qǐng)求 websocket 內(nèi)容
? ? ? ? {? ?//可打印Obj 內(nèi)容即可看到 }
posted on 2019-06-12 16:15 NET未來(lái)之路 閱讀(...) 評(píng)論(...) 編輯 收藏
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。可點(diǎn)擊關(guān)注博主 ,不明白的進(jìn)群191065815 我的群里問(wèn) https://blog.csdn.net/u010919083/article/details/80913948
廢話不多說(shuō)直接上代碼:
private void Form1_Load(object sender, EventArgs e){try{//更改設(shè)置瀏覽器語(yǔ)言CefSettings settings = new CefSettings();settings.Locale = "zh-CN";settings.AcceptLanguageList = "zh-CN";Cef.Initialize(settings);var re = new request();//接收和發(fā)送的http消息re.msg += Re_msg;re.msg2 += Re_msg2; ... 這里是使用? ? ?private void Re_msg(string obj)? ? ? ? {? ?//可打印Obj 內(nèi)容即可看到 }
public class request : IRequestHandler{public event Action<string> msg;public event Action<string,object> msg2;public event Action<string> msgGetuser;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;//var filter2 = FilterManager.CreateFilter(request.Identifier.ToString());//return filter2;}return null;//var filter1 = FilterManager.CreateFilter(request.Identifier.ToString());//return filter1;}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){//if (request.Url.Contains("https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact?") || request.Url.Contains("https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact?"))//{// //if (!response.ResponseHeaders["Content-Type"].Contains("application/json"))// //{// // return;// //}// var filter1 = FilterManager.GetFileter(request.Identifier.ToString()) as AppendResponseFilter;// if (filter1 != null)// Console.WriteLine(filter1.DataAll);// byte[] bys = filter1.DataAll.ToArray();// string s1 = System.Text.Encoding.UTF8.GetString(bys);// msgGetuser.Invoke(s1);//}}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;}}posted on 2019-06-12 16:15 NET未來(lái)之路 閱讀(...) 評(píng)論(...) 編輯 收藏
轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/11010337.html
總結(jié)
以上是生活随笔為你收集整理的使用CEfSharp之旅(7)CEFSharp 拦截 http 请求 websocket 内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: dedecms部分文章出现读取附加信息出
- 下一篇: 德国不是禁止宣传纳粹吗?为啥希特勒回来了