示例#1
0
 /// <summary>
 ///
 /// </summary>
 public YouTubeService(string DeveloperKey)
 {
     this.AuthInfo = new ClientLogin()
     {
         DeveloperKey = DeveloperKey
     };
     this.bIsAuthorized                = false;
     Request                           = new YouTubeWebRequest();
     Request.OnTranfering             += new EventHandler <YouTubeEventArgs>(Request_OnTranfering);
     Request.OnReceveResponseComplete += new EventHandler <YouTubeEventArgs>(Request_OnReceveResponseComplete);
     Request.OnExceptionCatched       += new EventHandler <YouTubeEventArgs>(Request_OnExceptionCatched);
 }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="asynchronousResult"></param>
        private void ReadCallback(IAsyncResult asynchronousResult)
        {
            try
            {
                YouTubeWebRequest request = (YouTubeWebRequest)asynchronousResult.AsyncState;
                //Console.WriteLine("Working...");
                Stream ms = request.YouTubeRequest.EndGetRequestStream(asynchronousResult);

                int    bytesCount           = 0;
                Int64  bytesTotalTransfered = 0;
                Int64  bytesTotal           = request.POSTData.Length;
                byte[] bytes = new byte[2048];

                YouTubeEventArgs args = new YouTubeEventArgs();
                args.BytesTotal = bytesTotal;

                request.POSTData.Seek(0, SeekOrigin.Begin);

                while ((bytesCount = request.POSTData.Read(bytes, 0, bytes.Length)) > 0)
                {
                    ms.Write(bytes, 0, bytesCount);
                    bytesTotalTransfered += bytesCount;
                    args.BytesTransfered  = bytesTotalTransfered;
                    if (this.OnTranfering != null)
                    {
                        this.OnTranfering(this, args);
                    }
                }


                if (this.OnTransferComplete != null)
                {
                    args.Message = "SUCCESS UPLOAD";
                    this.OnTransferComplete(this, args);
                }

                request.YouTubeRequest.BeginGetResponse(ReadCallbackResponse, this);
                //Console.WriteLine("Done");
            }
            catch (Exception ex)
            {
                YouTubeEventArgs args = new YouTubeEventArgs();
                if (this.OnExceptionCatched != null)
                {
                    args.Message = ex.ToString();
                    this.OnExceptionCatched(this, args);
                }
            }
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="asynchronousResult"></param>
        private void ReadCallbackResponse(IAsyncResult asynchronousResult)
        {
            YouTubeWebRequest request = (YouTubeWebRequest)asynchronousResult.AsyncState;
            WebResponse       webResp = request.YouTubeRequest.EndGetResponse(asynchronousResult);
            String            message = "";

            try
            {
                using (StreamReader streamRd = new StreamReader(webResp.GetResponseStream()))
                {
                    message = streamRd.ReadToEnd();
                    //Console.WriteLine(message);
                }

                YouTubeEventArgs args = new YouTubeEventArgs();
                if (this.OnReceveResponseComplete != null)
                {
                    args.Message = message;
                    this.OnReceveResponseComplete(this, args);
                }
            }
            catch (WebException ex)
            {
                using (StreamReader streamRd = new StreamReader(ex.Response.GetResponseStream()))
                {
                    //Console.WriteLine("web exception\n" + streamRd.ReadToEnd());

                    if (this.OnExceptionCatched != null)
                    {
                        YouTubeEventArgs args = new YouTubeEventArgs();
                        args.Message = streamRd.ReadToEnd();
                        this.OnExceptionCatched(this, args);
                    }
                }
            }
        }
示例#4
0
 /// <summary>
 /// 
 /// </summary>
 public YouTubeService(string DeveloperKey)
 {
     this.AuthInfo = new ClientLogin() { DeveloperKey = DeveloperKey};
     this.bIsAuthorized = false;
     Request = new YouTubeWebRequest();
     Request.OnTranfering += new EventHandler<YouTubeEventArgs>(Request_OnTranfering);
     Request.OnReceveResponseComplete += new EventHandler<YouTubeEventArgs>(Request_OnReceveResponseComplete);
     Request.OnExceptionCatched += new EventHandler<YouTubeEventArgs>(Request_OnExceptionCatched);
 }