コード例 #1
0
        private void myFreeHttpWindow_OnGetSessionSeekHead(object sender, FreeHttpWindow.GetSessionSeekHeadEventArgs e)
        {
            Session tempSession = Fiddler.FiddlerObject.UI.GetFirstSelectedSession();

            if (tempSession == null)
            {
                FreeHttpWindow.MarkWarnControl(Fiddler.FiddlerApplication.UI.lvSessions);
            }
            else
            {
                if (e != null && e.ResquestHead.Key != null)
                {
                    //HTTPHeaderItem nowHTTPHeaderItem = tempSession.RequestHeaders.First(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResquestHead.Key);
                    HTTPHeaderItem nowHTTPHeaderItem = tempSession.RequestHeaders.FirstOrDefault(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResquestHead.Key);

                    if (nowHTTPHeaderItem != null)
                    {
                        e.ResquestHead = new KeyValuePair <string, string>(nowHTTPHeaderItem.Name, nowHTTPHeaderItem.Value);
                        e.SeekUri      = tempSession.fullUrl;
                    }
                }

                if (e != null && e.ResponseHead.Key != null)
                {
                    HTTPHeaderItem nowHTTPHeaderItem = tempSession.ResponseHeaders.FirstOrDefault(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResponseHead.Key);
                    if (nowHTTPHeaderItem != null)
                    {
                        e.ResponseHead = new KeyValuePair <string, string>(nowHTTPHeaderItem.Name, nowHTTPHeaderItem.Value);
                        e.SeekUri      = tempSession.fullUrl;
                    }
                }
            }
        }
コード例 #2
0
        public override bool BeforeRequest(Session session, Rule rule)
        {
            // Find the headers
            HTTPHeaderItem activeHeader = null;

            foreach (HTTPHeaderItem header in session.oRequest.headers)
            {
                if (header.Name.Equals("Cookie", StringComparison.OrdinalIgnoreCase))
                {
                    activeHeader = header;
                }
            }

            if (activeHeader != null)
            {
                var cookies = activeHeader.Value.Split(new[] { "; ", ";" }, StringSplitOptions.RemoveEmptyEntries);
                var updated = false;
                for (var i = 0; i < cookies.Length; i++)
                {
                    var cookie = cookies[i];
                    if (cookie.StartsWith(this.Name + "=", StringComparison.OrdinalIgnoreCase)) // Ignore case?
                    {
                        var value = cookie.Substring(this.Name.Length + 1);

                        // Run all the sub actions.
                        foreach (var action in this.Actions)
                        {
                            updated = true;
                            value   = action.Run(session, value);
                        }

                        if (String.IsNullOrEmpty(value))
                        {
                            cookies[i] = String.Empty;
                        }
                        else
                        {
                            cookies[i] = cookie.Substring(0, this.Name.Length) + "=" + value;
                        }
                    }
                }

                if (updated)
                {
                    // Set the new value.
                    activeHeader.Value = String.Join("; ", cookies.Where(c => !String.IsNullOrEmpty(c)));
                    RuleLog.Current.AddRule(rule, session, String.Format("Cookies Updated ({0})", session.hostname));
                }
            }

            return(true);
        }
コード例 #3
0
ファイル: CodeGen.cs プロジェクト: dutysok/RequestToRestSharp
 private void AddHeader(StringBuilder code, HTTPHeaderItem header)
 {
     if (header.Name == "Cookie")
     {
         code.AppendLine($"//request.AddHeader(\"{header.Name}\",\"{header.Value}\");");
     }
     else if (_headerOverrides.ContainsKey(header.Name))
     {
         code.AppendLine($"request.AddHeader(\"{header.Name}\",\"{_headerOverrides[header.Name]}\");");
     }
     else
     {
         code.AppendLine($"request.AddHeader(\"{header.Name}\",\"{header.Value}\");");
     }
 }
コード例 #4
0
        protected string GetNetScalerCookieInfo(HTTPHeaderItem httpHeaderItem)
        {
            string        httpHeaderdata = httpHeaderItem.Value.ToString();
            StringBuilder stringBuilder  = new StringBuilder();

            if (httpHeaderdata.Contains("NSC_"))
            {
                string[] cookies = httpHeaderdata.Split(';');
                foreach (string cookie in cookies)
                {
                    if (cookie.Contains("NSC_"))
                    {
                        stringBuilder.AppendLine("NetScaler Cookie: " + cookie.TrimStart());
                        stringBuilder.AppendLine();
                        stringBuilder.AppendLine(FormatCookie(cookie.TrimStart(), FiddlerApplication.Prefs.GetBoolPref("extensions.miHostNameLookup.enabled", false)));
                    }
                }
            }
            return(stringBuilder.ToString());
        }
コード例 #5
0
        public virtual bool BeforeRequest(Session session, Rule rule)
        {
            // Find the headers
            HTTPHeaderItem activeHeader = null;
            string         value        = String.Empty;

            foreach (HTTPHeaderItem header in session.oRequest.headers)
            {
                if (header.Name.Equals(this.Name, StringComparison.OrdinalIgnoreCase))
                {
                    value        = header.Value;
                    activeHeader = header;
                }
            }

            if (activeHeader != null)
            {
                // Run all the sub actions.
                value = this.Actions.Aggregate(value, (current, action) => action.Run(session, current));

                if (String.IsNullOrEmpty(value))
                {
                    session.oRequest.headers.Remove(activeHeader);
                    RuleLog.Current.AddRule(rule, session,
                                            String.Format("Header ({0}) Removed ({1})", this.Name, session.hostname));
                }
                else
                {
                    // Set the new value.
                    activeHeader.Value = value;
                    RuleLog.Current.AddRule(rule, session,
                                            String.Format("Header ({0}) Updated ({1})", this.Name, session.hostname));
                }
            }

            return(true);
        }
コード例 #6
0
 private static bool IsHeaderExcluded(HTTPHeaderItem header)
 {
     return(ExcludedHttpHeaders.Any(excludedHttpHeader => header.Name == excludedHttpHeader));
 }
コード例 #7
0
ファイル: Header.cs プロジェクト: XEonAX/DaX
 public Header(HTTPHeaderItem item) : this(item.Name, item.Value)
 {
 }