Exemple #1
0
        /// <summary>
        /// Called for first web request.
        /// </summary>
        /// <param name="requestParameter">Could be modified for each subsequent request</param>
        /// <param name="webRequestComplete"></param>
        /// <param name="webRequestException"></param>
        /// <param name="webRequestStart"></param>
        /// <param name="webRequestProgress"></param>
        /// <param name="priority"></param>
        private RequestState DoQueueRequest(RequestParameter requestParameter,
                                            RequestStartCallback webRequestStart,
                                            RequestCompleteCallback webRequestComplete,
                                            RequestExceptionCallback webRequestException,
                                            RequestProgressCallback webRequestProgress,
                                            int priority)
        {
            if (requestParameter == null)
            {
                throw new ArgumentNullException("requestParameter");
            }

            if (_queuedRequests.Contains(requestParameter.RequestUri.CanonicalizedUri()))
            {
                return(null); // httpRequest already there
            }
            _queuedRequests.Add(requestParameter.RequestUri.CanonicalizedUri(), null);

            var webRequest = PrepareRequest(requestParameter);

            RequestState state = new RequestState(webRequest, priority, requestParameter);

            state.WebRequestBeforeStart += webRequestStart;
            state.WebRequestCompleted   += webRequestComplete;
            state.WebRequestException   += webRequestException;
            state.WebRequestProgress    += webRequestProgress;

            PerformHttpRequestAsync(state, priority);

            return(state);
        }
Exemple #2
0
 /// <summary>
 /// Used to a queue an HTTP request for processing
 /// </summary>
 /// <param name="requestParameter"></param>
 /// <param name="webRequestComplete"></param>
 /// <param name="webRequestException"></param>
 /// <param name="webRequestStart"></param>
 /// <param name="webRequestProgress"></param>
 /// <param name="priority"></param>
 /// <exception cref="NotSupportedException">The request scheme specified in address has not been registered.</exception>
 /// <exception cref="ArgumentNullException">The requestParameter is a null reference</exception>
 /// <exception cref="System.Security.SecurityException">The caller does not have permission to connect to the requested URI or a URI that the request is redirected to.</exception>
 internal RequestState QueueRequest(RequestParameter requestParameter,
                                    RequestStartCallback webRequestStart,
                                    RequestCompleteCallback webRequestComplete,
                                    RequestExceptionCallback webRequestException,
                                    RequestProgressCallback webRequestProgress,
                                    int priority)
 {
     return
         (DoQueueRequest(requestParameter, webRequestStart, webRequestComplete,
                         webRequestException, webRequestProgress, priority));
 }
Exemple #3
0
 private static extern IntPtr SubmitClientRequest(string tag, string url, string[] headers, string method, string data, RequestDoneCallback doneDelegate, RequestProgressCallback progressDelegate = null);