コード例 #1
0
ファイル: SeekableHttpStream.cs プロジェクト: Terradue/Stars
        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();
        }