void webBrowser_LoadCompleted(object sender, NavigationEventArgs e) { new Action(() => { Thread.Sleep(500); FiddlerHelper.WaitForSessionStackComplete(); FiddlerHelper.Log("all done"); App.CurrentApp.InRenderAction((_) => { HTMLDocument dom = (HTMLDocument)webBrowser.Document; Analyse(dom); }, null, true); }).BeginInvoke(null, null); }
public void Bind(HTMLDocument dom) { Clean(); var pageInfo = this; //input fields foreach (dynamic item in dom.all) { if (item.tagName == "INPUT") { pageInfo.InputTags.Add(new InputTagInfo { TagName = item.tagName, Name = item.name, Value = item.value, Type = item.type }); //FiddlerHelper.Log(String.Format("input '{2}' {0}={1}", item.name, item.value, item.type)); } else if (item.tagName == "BUTTON") { FiddlerHelper.Log("BUTTON:" + item); } } //headers var sess = FiddlerHelper.GetSessionsStack().First(); foreach (HTTPHeaderItem h in sess.FiddlerSession.oResponse.headers) { pageInfo.ResponseHeaders.Add(new NameValueItem { Name = h.Name, Value = h.Value }); } foreach (HTTPHeaderItem h in sess.FiddlerSession.oRequest.headers) { pageInfo.RequestHeaders.Add(new NameValueItem { Name = h.Name, Value = h.Value }); } pageInfo.RequestType = sess.FiddlerSession.oRequest.headers.HTTPMethod; pageInfo.RequestUrl = sess.BrowsingResponse.ResponseUrl.ToString(); //query string string query = ""; switch (pageInfo.RequestType) { case "GET": var q = sess.FiddlerSession.oRequest.headers.RequestPath; var queryStringIndex = q.IndexOf("?"); if (queryStringIndex >= 0) { query = q.Substring(queryStringIndex + 1); } break; case "POST": query = sess.FiddlerSession.GetRequestBodyAsString(); break; } var qarr = query.Split('&'); foreach (string qq in qarr) { var q = qq.Split('='); if (q[0].Length > 0) { pageInfo.QueryParams.Add(new NameValueItem { Name = q[0], Value = q[1] }); } } }