Ejemplo n.º 1
0
        /// <devdoc>
        ///    <para>Generates a byte array or downloads data to an open file stream</para>
        /// </devdoc>
        private byte[] DownloadBits(WebRequest request, Stream writeStream, CompletionDelegate completionDelegate, AsyncOperation asyncOp) {
            WebResponse response = null;
            DownloadBitsState state = new DownloadBitsState(request, writeStream, completionDelegate, asyncOp, m_Progress, this);

            if (state.Async) {
                request.BeginGetResponse(new AsyncCallback(DownloadBitsResponseCallback), state);
                return null;
            } else {
                response = m_WebResponse = GetWebResponse(request);
            }

            bool completed;
            int bytesRead = state.SetResponse(response);
            do {
                completed = state.RetrieveBytes(ref bytesRead);
            } while (!completed);
            state.Close();
            return state.InnerBuffer;
        }
 private byte[] DownloadBits(WebRequest request, Stream writeStream, CompletionDelegate completionDelegate, AsyncOperation asyncOp)
 {
     WebResponse response = null;
     DownloadBitsState state = new DownloadBitsState(request, writeStream, completionDelegate, asyncOp, this.m_Progress, this);
     if (state.Async)
     {
         request.BeginGetResponse(new AsyncCallback(WebClient.DownloadBitsResponseCallback), state);
         return null;
     }
     response = this.m_WebResponse = this.GetWebResponse(request);
     int bytesRetrieved = state.SetResponse(response);
     while (!state.RetrieveBytes(ref bytesRetrieved))
     {
     }
     state.Close();
     return state.InnerBuffer;
 }