示例#1
0
        /// <summary>
        ///
        /// </summary>
        void _OnDownloadPartialResponseCallback(IAsyncResult ar)
        {
            try
            {
                UnregisterTimeOut();

                lock (lock_obj_)
                {
                    HttpWebRequest req = ar.AsyncState as HttpWebRequest;
                    if (req == null)
                    {
                        return;
                    }
                    HttpWebResponse response = req.BetterEndGetResponse(ar) as HttpWebResponse;
                    if (response.StatusCode == HttpStatusCode.PartialContent)
                    {
                        Length = content_.LastTimeCompletedLength + response.ContentLength;
                        content_.WebResponse = response;
                        _BeginRead(new AsyncCallback(_OnReadCallback));
                    }
                    else if (response.StatusCode == HttpStatusCode.NotModified)
                    {
                        OnFailed(emErrorCode.Abort);
                        return;
                    }
                    else
                    {
                        response.Close();
                        OnFailed(emErrorCode.NoResponse);
                        return;
                    }
                }
            }
            catch (System.Exception e)
            {
                Debug.LogWarning("HttpAsyDownload - \"" + LocalName + "\" download failed!"
                                 + "\nMessage:" + e.Message);
                OnFailed(emErrorCode.DownloadError);
            }
        }
 private void OnResponseCallback(IAsyncResult ar)
 {
     try
     {
         UnRegisterTimeOut();
         lock (lock_obj){
             HttpWebRequest  httpwebrequest  = ar.AsyncState as HttpWebRequest;
             HttpWebResponse httpwebresponse = httpwebrequest.BetterEndGetResponse(ar) as HttpWebResponse;
             if (httpwebresponse.StatusCode == HttpStatusCode.OK)
             {
                 m_content.WebResponse = httpwebresponse;
                 Length = httpwebresponse.ContentLength;
                 BeginRead(OnReadCallback); // public delegate void AsyncCallback(IAsyncResult ar);
             }
             else if (httpwebresponse.StatusCode == HttpStatusCode.NotModified)
             {
             }
         }
     }
     catch
     {
     }
 }