예제 #1
0
        public static Session Send(string method, string url, string version, string headers, byte[] bodyBytes,
                                   StringDictionary oNewFlags = null, string hostname = null)
        {
            string             headerString = BuildHeader(method, url, version, headers);
            HTTPRequestHeaders header       = new HTTPRequestHeaders();

            if (!header.AssignFromString(headerString))
            {
                // error
                MessageBox.Show(@"Failed to AssignFromString");
                return(null);
            }

            if (hostname != null)
            {
                OverrideHost(ref header, hostname);
            }
            Session oSession = Send(header, bodyBytes);

            return(oSession);
        }
예제 #2
0
        public static string InjectRaw(string rawRequest)
        {
            var guid = Guid.NewGuid().ToString();
            var hdbd = SplitHdBd.Split(rawRequest, 2);

            if (hdbd.Length == 2)
            {
                var httpheaders = new HTTPRequestHeaders();
                httpheaders.AssignFromString(hdbd[0]);
                httpheaders["Calibur-Composer"] = guid;
                if (!string.IsNullOrWhiteSpace(hdbd[1]))
                {
                    httpheaders["Content-Length"] = Encoding.UTF8.GetBytes(hdbd[1]).Length.ToString();
                }
                var headerstr = httpheaders.ToString(true, true, false);
                FiddlerApplication.oProxy.InjectCustomRequest(headerstr + hdbd[1]);
                return(guid);
            }
            else
            {
                throw new ArgumentException("Raw request is invalid.");
            }
        }
예제 #3
0
 public Session SendRequest(string sRequest, StringDictionary oNewFlags)
 {
     int num;
     int num2;
     HTTPHeaderParseWarnings warnings;
     byte[] emptyByteArray;
     byte[] bytes = CONFIG.oHeaderEncoding.GetBytes(sRequest);
     if (!Parser.FindEntityBodyOffsetFromArray(bytes, out num, out num2, out warnings))
     {
         throw new ArgumentException("sRequest did not represent a valid HTTP request", "sRequest");
     }
     string sHeaders = CONFIG.oHeaderEncoding.GetString(bytes, 0, num) + "\r\n\r\n";
     HTTPRequestHeaders oHeaders = new HTTPRequestHeaders();
     if (!oHeaders.AssignFromString(sHeaders))
     {
         throw new ArgumentException("sRequest did not contain valid HTTP headers", "sRequest");
     }
     if (1 > (bytes.Length - num2))
     {
         emptyByteArray = Utilities.emptyByteArray;
     }
     else
     {
         emptyByteArray = new byte[bytes.Length - num2];
         Buffer.BlockCopy(bytes, num2, emptyByteArray, 0, emptyByteArray.Length);
     }
     return this.SendRequest(oHeaders, emptyByteArray, oNewFlags);
 }