Ejemplo n.º 1
0
        /// <summary>
        /// 非同期HTTPリクエストのレスポンスを取得したときに呼ばれます。
        /// </summary>
        private static void GetHttpResponseDone(IAsyncResult result)
        {
            var data = (GetHttpResponseDoneData)result.AsyncState;

            try
            {
                var response = data.WebRequest.EndGetResponse(result);
                if (response == null)
                {
                    data.Callback(result, null);
                    return;
                }

                // 入出力ストリームです。
                var inputStream  = response.GetResponseStream();
                var outputStream = new MemoryStream();
                var buffer       = new byte[BUFFERING_SIZE];

                var callData = new ReadHttpStreamDoneData()
                {
                    InputStream  = inputStream,
                    OutputStream = outputStream,
                    Buffer       = buffer,
                    Callback     = data.Callback,
                };

                // レスポンスデータの読み込みを開始します。
                inputStream.BeginRead(
                    buffer, 0, buffer.Length,
                    ReadHttpStreamDone,
                    callData);
            }
            catch
            {
                data.Callback(result, null);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 非同期HTTPリクエストのレスポンスを取得したときに呼ばれます。
        /// </summary>
        private static void GetHttpResponseDone(IAsyncResult result)
        {
            var data = (GetHttpResponseDoneData)result.AsyncState;

            try
            {
                var response = data.WebRequest.EndGetResponse(result);
                if (response == null)
                {
                    data.Callback(result, null);
                    return;
                }

                // 入出力ストリームです。
                var inputStream = response.GetResponseStream();
                var outputStream = new MemoryStream();
                var buffer = new byte[BUFFERING_SIZE];

                var callData = new ReadHttpStreamDoneData()
                {
                    InputStream = inputStream,
                    OutputStream = outputStream,
                    Buffer = buffer,
                    Callback = data.Callback,
                };

                // レスポンスデータの読み込みを開始します。
                inputStream.BeginRead(
                    buffer, 0, buffer.Length,
                    ReadHttpStreamDone,
                    callData);
            }
            catch
            {
                data.Callback(result, null);
            }
        }