public SeekableHttpStream(HttpWebRequest httpWebRequest, long page = DEFAULT_PAGE_LENGTH, int maxpages = DEFAULT_MAX_PAGE_COUNT) { _originalHttpWebRequest = httpWebRequest; _metadata = new MetaData() { PageSize = page, MaxPages = maxpages, }; var initialHttpWebRequest = httpWebRequest.CloneRequest(_originalHttpWebRequest.RequestUri); var m = initialHttpWebRequest.GetResponseAsync().GetAwaiter().GetResult() as HttpWebResponse; if (m.ContentLength < 1) { throw new NotSupportedException("SeekableHttpStream needs a ContentLength in the HTTP response"); } _metadata.Length = m.ContentLength; _metadata.HTTPeTag = m.Headers[HttpResponseHeader.ETag]; m.Close(); }