当前位置: 首页>>代码示例>>C#>>正文


C# WebRequest.Abort方法代码示例

本文整理汇总了C#中System.Net.WebRequest.Abort方法的典型用法代码示例。如果您正苦于以下问题:C# WebRequest.Abort方法的具体用法?C# WebRequest.Abort怎么用?C# WebRequest.Abort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Net.WebRequest的用法示例。


在下文中一共展示了WebRequest.Abort方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BeginRequest

 private void BeginRequest(WebRequest request, AsyncCallback callback, object state)
 {
     var result = request.BeginGetResponse(callback, state);
     ClientEngine.MainLoop.QueueTimeout(RequestTimeout, delegate
     {
         if (!result.IsCompleted)
             request.Abort();
         return false;
     });
 }
开发者ID:claudiuslollarius,项目名称:monotorrent,代码行数:10,代码来源:HTTPTracker.cs

示例2: AbortRequest

 private static void AbortRequest(WebRequest request)
 {
     try
     {
         if (request != null)
         {
             request.Abort();
         }
     }
     catch (Exception exception)
     {
         if (((exception is OutOfMemoryException) || (exception is StackOverflowException)) || (exception is ThreadAbortException))
         {
             throw;
         }
     }
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:17,代码来源:WebClient.cs

示例3: EndStreaming

 private void EndStreaming(WebRequest request)
 {
     _isStreaming = false;
     
     var stream = new MemoryStream(_endStreamBytes);
     var args = new WebQueryResponseEventArgs(stream);
     OnQueryResponse(args);
     request.Abort();
 }
开发者ID:modulexcite,项目名称:graveyard,代码行数:9,代码来源:WebQuery.Async.cs

示例4: Response

        public Response(WebRequest request)
        {
            int retries = 0;
            const int maxRetries = 3;
            WebException lastEx = null;

            do
            {
                try
                {
                    if (this.response != null)
                    {
                        try
                        {
                            this.response.Close();
                        }
                        catch { }
                    }

                    request.Timeout = 30000;
                    this.response = request.GetResponse();
                    lastEx = null;
                }
                catch (WebException ex)
                {
                    Debug.WriteLine("Response(request) failed with " + ex.Message);
                    long contentLength = request.ContentLength;

                    try
                    {
                        this.response.Close();
                    }
                    catch { }

                    try
                    {
                        request.Abort();
                    }
                    catch { }

                    lastEx = ex;
                    retries += 1;

                    int? statusCode;
                    HttpWebResponse response = ex.Response as HttpWebResponse;
                    if (response == null)
                    {
                        statusCode = null;
                        if (AWSAuthConnection.verbose)
                            Console.WriteLine("WebException ({0}) but couldn't determine status code", ex.Message);
                    }
                    else
                    {
                        statusCode = (int)response.StatusCode;
                        if (AWSAuthConnection.verbose)
                            Console.WriteLine("WebException ({0}) with status code {1}", ex.Message, statusCode);
                    }

                    if (contentLength == -1 && (statusCode == null || (statusCode >= 500 && statusCode < 600)))
                    {
                        if (AWSAuthConnection.verbose)
                            Console.Error.WriteLine("Rebuilding request automatically");

                        // we can rebuild the request here and retry it (sadly there's no request.Reset())
                        WebRequest newRequest = WebRequest.Create(request.RequestUri);
                        foreach (string key in request.Headers.AllKeys)
                            if (key != "Host" && key != "Connection") // can't set either of these directly
                                newRequest.Headers.Add(key, request.Headers[key]);
                        newRequest.Method = request.Method;
                        if (newRequest is HttpWebRequest)
                        {
                            HttpWebRequest httpReq = newRequest as HttpWebRequest;
                            httpReq.AllowWriteStreamBuffering = false;
                        }
                        request = newRequest;

                        System.Threading.Thread.Sleep(250 * (int)Math.Pow(2, retries - 1));
                    }
                    else
                    {
                        request = null;
                        throw;
                    }
                }
            } while (retries < maxRetries && lastEx != null);

            if (lastEx != null)
            {
                Debug.WriteLine("lastEx not null");

                string msg = lastEx.Response != null ? Utils.slurpInputStream(lastEx.Response.GetResponseStream()) : lastEx.Message;
                try
                {
                    lastEx.Response.Close();
                }
                catch
                {
                    // ignore
                }
                throw new WebException(msg, lastEx, lastEx.Status, lastEx.Response);
//.........这里部分代码省略.........
开发者ID:OlegBoulanov,项目名称:s3e,代码行数:101,代码来源:Response.cs

示例5: _getResponseAsync

 static IEnumerable<Task> _getResponseAsync(TaskCompletionSource<WebResponse> tcs, WebRequest request, TimeSpan timeout)
 {
     using (var cancellation_token = new Concurrency.TimeoutToken(timeout))
     using (var registration_token = cancellation_token.Token.Register(() => { request.Abort(); }))
     {
         using (var task_get_response = request.GetResponseAsync())
         {
             yield return task_get_response;
             tcs.SetFromTask(task_get_response);
             yield break;
         }
     }
 }
开发者ID:AlphaStaxLLC,项目名称:availability-proxy-for-rest-services,代码行数:13,代码来源:Helpers.cs

示例6: Start

        public void Start()
        {
            if (StreamState == StreamState.Stop && !_isNew)
            {
                return;
            }

            this.Raise(StreamStarted);
            SetStreamState(StreamState.Resume);

            _currentWebRequest = _generateWebRequest();
            _currentStreamReader = CreateStreamReaderFromWebRequest(_currentWebRequest);

            int numberOfRepeatedFailures = 0;

            while (StreamState != StreamState.Stop)
            {
                if (StreamState == StreamState.Pause)
                {
                    using (EventWaitHandle tmpEvent = new ManualResetEvent(false))
                    {
                        tmpEvent.WaitOne(TimeSpan.FromSeconds(STREAM_RESUME_DELAY));
                    }

                    continue;
                }

                try
                {
                    var jsonResponse = GetJsonResponseFromReader();
                    
                    var isJsonResponseValid = jsonResponse != null;
                    if (!isJsonResponseValid)
                    {
                        if (TryHandleInvalidResponse(numberOfRepeatedFailures))
                        {
                            ++numberOfRepeatedFailures;
                            continue;
                        }

                        break;
                    }

                    numberOfRepeatedFailures = 0;

                    if (jsonResponse == string.Empty)
                    {
                        continue;
                    }

                    if (StreamState == StreamState.Resume && !_processObject(jsonResponse))
                    {
                        SetStreamState(StreamState.Stop);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    if (!ShouldContinueAfterHandlingException(ex))
                    {
                        SetStreamState(StreamState.Stop);
                        break;
                    }
                }
            }

            if (_currentWebRequest != null)
            {
                _currentWebRequest.Abort();
            }

            if (_currentStreamReader != null)
            {
                _currentStreamReader.Dispose();
            }
        }
开发者ID:rudiv,项目名称:tweetinvi,代码行数:76,代码来源:StreamTask.cs

示例7: CreateStreamReaderFromWebRequest

        private StreamReader CreateStreamReaderFromWebRequest(WebRequest webRequest)
        {
            if (webRequest == null)
            {
                SetStreamState(StreamState.Stop);
                return null;
            }

            StreamReader reader = null;

            try
            {
                var twitterQuery = _twitterQueryFactory.Create(webRequest.RequestUri.AbsoluteUri);
                var queryBeforeExecuteEventArgs = new QueryBeforeExecuteEventArgs(twitterQuery);
                _tweetinviEvents.RaiseBeforeQueryExecute(queryBeforeExecuteEventArgs);

                if (queryBeforeExecuteEventArgs.Cancel)
                {
                    SetStreamState(StreamState.Stop);
                    return null;
                }

                // TODO : LINVI - THIS CODE HAS CHANGED AND NEEDS TO BE CHECKED WITH ASP.NET
                var responseStream = _webHelper.GetResponseStreamAsync(webRequest).Result;
                if (responseStream != null)
                {
                    reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
                }
            }
            catch (WebException wex)
            {
                HandleWebException(wex);
            }
            catch (Exception ex)
            {
                if (ex is ArgumentException)
                {
                    if (ex.Message == "Stream was not readable.")
                    {
                        webRequest.Abort();
                    }
                }

                _lastException = ex;
                SetStreamState(StreamState.Stop);
            }

            return reader;
        }
开发者ID:rudiv,项目名称:tweetinvi,代码行数:49,代码来源:StreamTask.cs

示例8: CheckCancel

 private bool CheckCancel(BackgroundWorker worker, DoWorkEventArgs e, WebRequest request)
 {
     if (worker.CancellationPending)
     {
         request.Abort();
         e.Cancel = true;
         return true;
     }
     return false;
 }
开发者ID:dishiyicijinqiu,项目名称:OneCardAccess,代码行数:10,代码来源:BackgroundUpLoader.cs

示例9: init_webRequest

        /// <summary>
        /// Init a Stream
        /// </summary>
        /// <param name="webRequest">WebRequest to connect to streaming API</param>
        /// <returns>The stream connected to Twitter Streaming API</returns>
        private static StreamReader init_webRequest(WebRequest webRequest)
        {
            StreamReader reader = null;
            HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

            try
            {
                reader = new StreamReader(webResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
            }
            catch (ArgumentException ex)
            {
                if (ex.Message == "Stream was not readable.")
                {
                    webRequest.Abort();
                    // Modified by Linvi
                }
                else
                    throw ex;
            }

            return reader;
        }
开发者ID:CodyJung,项目名称:TwitBoard,代码行数:27,代码来源:Stream.cs


注:本文中的System.Net.WebRequest.Abort方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。