private void GenerateRequests(object sender, DoWorkEventArgs e) { _curDataAccessor.SetState(AccessorState.Loading); GetRecursiveListOfFiles(_rootDir); foreach (string fileName in _fileList) { try { string requestPath = fileName.Replace(_rootDir, ""); requestPath = requestPath.Replace('\\', '/').TrimStart('/'); requestPath = Regex.Replace(requestPath, _replacementPattern, _replacementString); var requestUri = new Uri(_rootUri, requestPath); requestPath = requestUri.AbsolutePath; string host = requestUri.Host; int port = requestUri.Port; var getRequest = new HttpRequestInfo(String.Format("GET {0} HTTP/1.1\r\n{1}\r\n\r\n", requestPath, _headers), true); var postRequest = new HttpRequestInfo(String.Format("POST {0} HTTP/1.1\r\n{1}\r\n", requestPath, _headers), true); postRequest.Headers["Content-Type"] = "application/x-www-form-urlencoded"; getRequest.Host = postRequest.Host = host; getRequest.Port = postRequest.Port = port; getRequest.IsSecure = postRequest.IsSecure = _rootUri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase); string fileContents = GetFileContents(fileName, 0); var parameters = GetParametersAndValues(_paramPattern, fileContents); //add requests for all parameter values combinations GenerateRequestsBasedOnParameters(getRequest, postRequest, parameters); //parse all links and forms from the content ExtractLinks(fileContents); //parse forms ExtractForms(fileContents); } catch (Exception ex) { SdkSettings.Instance.Logger.Log(System.Diagnostics.TraceLevel.Error, ex.Message); } } foreach (var url in _foundUrls) { if (Uri.IsWellFormedUriString(url, UriKind.Absolute)) { Uri uri = new Uri(url); //generate get requests var getRequest = new HttpRequestInfo(String.Format("GET {0} HTTP/1.1\r\n{1}\r\n\r\n", uri.PathAndQuery, _headers), true); getRequest.Host = uri.Host; getRequest.Port = uri.Port; AddHttpRequest(getRequest); } } _curDataAccessor.SetState(AccessorState.Idle); }