Example #1
0
 /// <summary>
 /// The constructor.
 /// </summary>
 /// <param name="options">We expect some options here.</param>
 public AjaxEventArgs(AjaxRequestOptions options)
 {
     Options = options;
 }
        /// <summary>
        /// The constructor.
        /// </summary>
        /// <param name="options">The options.</param>
        public AjaxRequest(AjaxRequestOptions options)
        {
            Options = options;
            header  = new Dictionary <string, string>();
            body    = string.Empty;
            var url = options.DirectUrl;

            if (options.Type == AjaxRequestType.GET)
            {
                url = options.DirectUrl + "?" + options.EncodedNameValuePairs;
            }

            request             = HttpWebRequest.Create(url) as HttpWebRequest;
            request.Method      = Options.Type.ToString();
            request.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
            request.Timeout     = Options.Timeout * 1000;

            if (!string.IsNullOrEmpty(Options.MimeType))
            {
                request.ContentType = Options.MimeType;
            }

            request.AllowAutoRedirect = true;
            request.Date = DateTime.Now;

            if (!string.IsNullOrEmpty(Options.Accepts))
            {
                request.Accept = Options.Accepts;
            }

            if (!string.IsNullOrEmpty(Options.UserName))
            {
                SetAuthorizationHeader(Options.UserName, Options.Password ?? string.Empty);
            }

            // See: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
            if (!Options.DiscardRequestedWith)
            {
                request.Headers.Add("X-Requested-With", "XMLHttpRequest");
            }

            foreach (string key in Options.Headers.Keys)
            {
                request.Headers[key] = Options.Headers[key].ToString();
            }

            if (Options.Complete != null)
            {
                OnComplete += Options.Complete;
            }

            if (Options.Success != null)
            {
                OnSuccess += Options.Success;
            }

            if (Options.Error != null)
            {
                OnError += Options.Error;
            }

            task       = new Task(PerformRequest);
            ReadyState = Zeroit.Framework.Utilities.Web.ReadyState.Uninitialized;
        }