日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

使用CEfSharp之旅(7)CEFSharp 拦截 http 请求 websocket 内容

發布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用CEfSharp之旅(7)CEFSharp 拦截 http 请求 websocket 内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用CEfSharp之旅(7)CEFSharp 攔截 http 請求 websocket 內容 原文:使用CEfSharp之旅(7)CEFSharp 攔截 http 請求 websocket 內容

版權聲明:本文為博主原創文章,未經博主允許不得轉載。可點擊關注博主 ,不明白的進群191065815 我的群里問 https://blog.csdn.net/u010919083/article/details/80913948

廢話不多說直接上代碼:

  private void Form1_Load(object sender, EventArgs e){try{//更改設置瀏覽器語言CefSettings settings = new CefSettings();settings.Locale = "zh-CN";settings.AcceptLanguageList = "zh-CN";Cef.Initialize(settings);var re = new request();//接收和發送的http消息re.msg += Re_msg;re.msg2 += Re_msg2;    ... 這里是使用
? ? ?private void Re_msg(string obj)
? ? ? ? {? ?//可打印Obj 內容即可看到 }

 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未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/11010337.html

總結

以上是生活随笔為你收集整理的使用CEfSharp之旅(7)CEFSharp 拦截 http 请求 websocket 内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。