// Copyright © 2016 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. using System.IO; using System.Net; using System.Threading.Tasks; namespace CefSharp.Example { public class FlashResourceHandler : ResourceHandler { public override CefReturnValue ProcessRequestAsync(IRequest request, ICallback callback) { Task.Run(() => { using (callback) { var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://samples.mplayerhq.hu/SWF/zeldaADPCM5bit.swf"); var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); // Get the stream associated with the response. var receiveStream = httpWebResponse.GetResponseStream(); var mime = httpWebResponse.ContentType; var stream = new MemoryStream(); receiveStream.CopyTo(stream); httpWebResponse.Close(); //Reset the stream position to 0 so the stream can be copied into the underlying unmanaged buffer stream.Position = 0; //Populate the response values - No longer need to implement GetResponseHeaders (unless you need to perform a redirect) ResponseLength = stream.Length; MimeType = mime; StatusCode = (int)HttpStatusCode.OK; Stream = stream; callback.Continue(); } }); return CefReturnValue.ContinueAsync; } } }