コード例 #1
0
        /// <summary>
        /// Event call from Worker Process, sends ReponseEventArgs to ResponseCallbackDelegate on callee.
        /// </summary>
        /// <param name="command"> The IPipelineCommand.</param>
        private void RequestCallback(IPipelineCommand command)
        {
            ScriptingResponseArgs args = new ScriptingResponseArgs();
            args.Context = ((ScriptingHttpState)command.HttpStateData).HttpRequestResponseContext;

            if ( args.Context.Request.WebResponse.ErrorMessage.Length == 0 )
            {
                // Saves Cookies
                _cookieManager.AddCookies(command.HttpResponseData.CookieCollection);
            }

            // Return response in a event
            ScriptingRequestClientResult(this, args);
        }
コード例 #2
0
        /// <summary>
        /// The request client result.
        /// </summary>
        /// <param name="sender"> The sender object.</param>
        /// <param name="e"> The event arguments.</param>
        private void ScriptingRequestClientResult(object sender, ScriptingResponseArgs e)
        {
            WebRequest request = e.Context.Request;

            if ( e.Context.Request.WebResponse.ErrorMessage.Length > 0 )
            {
                AbortSessionRun(e.Context.Request.WebResponse.ErrorMessage);
                _currentIndex = 0;
                return;
            }

            // Update Scripting Data
            _sessionScripting.WebRequests[e.Context.RequestIndex] = request;

            if ( OnRequestEnd != null )
            {
                RequestStartEndEventArgs args = new RequestStartEndEventArgs();
                args.CurrentIndex = e.Context.RequestIndex;
                args.RequestCount = _sessionScripting.WebRequests.Length;
                args.Request = request;

                OnRequestEnd(this, args);
            }

            // Execute Next Request
            if ( this.IsRunning )
            {
                ExecuteNextRequest();
            }
            else
            {
                _currentIndex = 0;
            }
        }