///@TODO: unit test with custom internal http server
        public static WebStreamWrapper Get(Uri uri, int timeoutInMilliseconds)
        {
            long contentLength;
            DateTime lastModified;
            var response = GetWebResponse(uri, timeoutInMilliseconds, out contentLength, out lastModified);
            var webStream = response.GetResponseStream();
            var output = new WebStreamWrapper()
            {
                _wrappedStream = webStream,
                _contentLength = contentLength,
                LastModified = lastModified
            };

            return output;
        }
        ///@TODO: unit test with custom internal http server
        public static WebStreamWrapper Get(Uri uri, int timeoutInMilliseconds)
        {
            long     contentLength;
            DateTime lastModified;
            var      response  = GetWebResponse(uri, timeoutInMilliseconds, out contentLength, out lastModified);
            var      webStream = response.GetResponseStream();
            var      output    = new WebStreamWrapper()
            {
                _wrappedStream = webStream,
                _contentLength = contentLength,
                LastModified   = lastModified
            };

            return(output);
        }