18 Ocak 2016 Pazartesi

c# awesome

05.using Fiddler;
06.public partial class App : Application
07.{
08.    protected override void OnStartup(StartupEventArgs e)
09.    {
10.        //Setup internal proxy
11.        FiddlerCoreStartupFlags oFCSF = FiddlerCoreStartupFlags.Default;
12.        oFCSF = (oFCSF & ~FiddlerCoreStartupFlags.RegisterAsSystemProxy);
13.        FiddlerApplication.Startup(0, oFCSF);
14.        base.OnStartup(e);
15.    }
16.    protected override void OnExit(ExitEventArgs e)
17.    {
18.        FiddlerApplication.Shutdown();
19.        base.OnExit(e);
20.    }
21.}
22. 
23.//MainWindow.xaml.cs
24.using Fiddler;
25.using Awesomium.Core;
26.using Awesomium.Windows.Controls;
27.using System.Collections.Concurrent;
28. 
29.public partial class MainWindow : Window
30.{
31.    WebControl AweWebControl;
32.    ConcurrentQueue<string> CQFiddlerPayloads;
33.    public MainWindow()
34.    {
35.        CQFiddlerPayloads = new ConcurrentQueue<string>();
36. 
37.        FiddlerApplication.OnWebSocketMessage += FiddlerApplication_OnWebSocketMessage;
38.        FiddlerApplication.Log.OnLogString += Log_OnLogString;
39. 
40.        WebCore.Initialize(new WebConfig
41.        {
42.            UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36"
43.        });
44.        WebPreferences prefs = new WebPreferences()
45.        {
46.            ProxyConfig = "http://127.0.0.1:" + FiddlerApplication.oProxy.ListenPort.ToString(),
47.        };
48.        WebSession webSession = WebCore.CreateWebSession(prefs);
49.        AweWebControl = new WebControl();
50.        AweWebControl.WebSession = webSession;
51.        AweWebControl.CertificateError += AweWebControl_CertificateError;
52. 
53.        InitializeComponent();
54. 
55.        GridAweBrowser.Children.Add(AweWebControl);
56.        AweWebControl.Source = new Uri("https://binguest.optiontime.com/binGuest/GuestMode.jsp?vendor=option-time&lang=en#classic");
57. 
58.        //create DispatcherTimer to process CQFiddlerPayloads
59.    }
60. 
61.    string LogString = "";
62.    void Log_OnLogString(object sender, LogEventArgs e)
63.    {
64.        LogString += e.LogString + "\n";
65.        // /Fiddler.CertMaker> Using Fiddler.DefaultCertificateProvider+MakeCertEngine for certificate generation
66.        // [WebSocket #20] Read from Server failed... Object reference not set to an instance of an object.  <<not always!
67.        // [WebSocket #20] Read from Client returned error: 0
68.        // [WebSocket #20] Read from Server returned error: 0
69.    }
70. 
71.    void FiddlerApplication_OnWebSocketMessage(object sender, WebSocketMessageEventArgs e)
72.    {
73.        if (e.oWSM.FrameType == WebSocketFrameTypes.Text && e.oWSM.IsFinalFrame == true)
74.            CQFiddlerPayloads.Enqueue(e.oWSM.PayloadAsString());
75.    }
76. 
77.    void AweWebControl_CertificateError(object sender, CertificateErrorEventArgs e)
78.    {
79.        e.Handled = EventHandling.Modal;
80.        e.Ignore = true;
81.    }
82.}