RequestHandler.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. using CefSharp;
  2. using System;
  3. namespace UAS_Web.tool
  4. {
  5. class RequestHandler : IRequestHandler
  6. {
  7. public event Action<byte[]> NotifyMsg;
  8. MessageFilter filter=null;
  9. IResponseFilter IRequestHandler.GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
  10. {
  11. Console.WriteLine("GetResourceResponseFilter1");
  12. var url = new Uri(request.Url);
  13. if (url.AbsoluteUri.Contains("http://192.168.253.6/uas_dev/jsps/vendbarcode/login.jsp"))
  14. {
  15. var filter = FilterManager.CreateFilter(request.Identifier.ToString());
  16. return filter;
  17. }
  18. return null;
  19. }
  20. void filter_NotifyData(byte[] data)
  21. {
  22. if (NotifyMsg != null)
  23. {
  24. NotifyMsg(data);
  25. }
  26. }
  27. void IRequestHandler.OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
  28. {
  29. Console.WriteLine("OnResourceLoadComplete1");
  30. if (request.Url.Contains("http://192.168.253.6/uas_dev/jsps/vendbarcode/login.jsp"))
  31. {
  32. var filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
  33. //string str = System.Text.Encoding.ASCII.GetString(filter.dataAll.ToArray());
  34. filter_NotifyData(filter.dataAll.ToArray());
  35. }
  36. }
  37. public bool GetAuthCredentials(IWebBrowser browserControl, IBrowser browser, IFrame frame, bool isProxy, string host, int port, string realm, string scheme, IAuthCallback callback)
  38. {
  39. Console.WriteLine("GetAuthCredentials");
  40. return false;
  41. }
  42. //public IResponseFilter GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
  43. //{
  44. // Console.WriteLine("GetResourceResponseFilter");
  45. // return new MessageFilter();
  46. //}
  47. public bool OnBeforeBrowse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, bool isRedirect)
  48. {
  49. Console.WriteLine("OnBeforeBrowse");
  50. return false;
  51. }
  52. public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
  53. {
  54. Console.WriteLine("OnBeforeResourceLoad");
  55. return CefReturnValue.Continue;
  56. }
  57. public bool OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback)
  58. {
  59. Console.WriteLine("OnCertificateError");
  60. return false;
  61. }
  62. public bool OnOpenUrlFromTab(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture)
  63. {
  64. Console.WriteLine("OnOpenUrlFromTab");
  65. return false;
  66. }
  67. public void OnPluginCrashed(IWebBrowser browserControl, IBrowser browser, string pluginPath)
  68. {
  69. Console.WriteLine("OnPluginCrashed");
  70. }
  71. public bool OnProtocolExecution(IWebBrowser browserControl, IBrowser browser, string url)
  72. {
  73. Console.WriteLine("OnProtocolExecution");
  74. return false;
  75. }
  76. public bool OnQuotaRequest(IWebBrowser browserControl, IBrowser browser, string originUrl, long newSize, IRequestCallback callback)
  77. {
  78. Console.WriteLine("OnQuotaRequest");
  79. return false;
  80. }
  81. public void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status)
  82. {
  83. Console.WriteLine("OnRenderProcessTerminated");
  84. }
  85. public void OnRenderViewReady(IWebBrowser browserControl, IBrowser browser)
  86. {
  87. Console.WriteLine("OnRenderViewReady");
  88. }
  89. public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
  90. {
  91. Console.WriteLine("OnResourceLoadComplete");
  92. }
  93. public void OnResourceRedirect(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, ref string newUrl)
  94. {
  95. Console.WriteLine("OnResourceRedirect");
  96. }
  97. bool IRequestHandler.OnResourceResponse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
  98. {
  99. Console.WriteLine("OnResourceResponse");
  100. try
  101. {
  102. var content_length = int.Parse(response.ResponseHeaders["Content-Length"]);
  103. if (filter != null)
  104. {
  105. filter.SetContentLength(content_length);
  106. }
  107. }
  108. catch { }
  109. return false;
  110. }
  111. }
  112. }