public ResourceResponse OnRequest(ResourceRequest request)
        {
            var webRequest = HttpWebRequest.CreateHttp(request.Url);
            webRequest = request.ToWebRequest(webRequest);
            Stream stream = null;
            var startTime = DateTime.Now;
            try
            {
                var response = webRequest.GetResponse();
                stream = response.GetResponseStream();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            var streamData = stream.ReadFully();
            var endTime = DateTime.Now;

            var timeTaken = (endTime - startTime).TotalMilliseconds;
            var filename = Guid.NewGuid().ToString();
            File.WriteAllBytes(filename, streamData);

            RecordTimeOfResourceOccured.Invoke(new ResourceTimingResult
            {
                ResourceUrl = request.Url.ToString(),
                TimeTaken = timeTaken,
                Size = streamData.Length,
            });
            return ResourceResponse.Create(filename);
        }