Пример #1
0
        public async Task <HttpResponseMessage> GetResponseAsync(long startPosition)
        {
            if (partialDownload != null && startPosition == 0)
            {
                var c = partialDownload;
                partialDownload = null;
                return(c);
            }
            var options = new WebRequestOptions()
            {
                Timeout = 30000,
                TimeoutSecondRetrialAfterError = 10000,
                TimeoutStartSecondRetrial      = null
            };
            var url = new LazyUri(this.Url);

            HttpExtensionMethods.ProcessMetaParameters(url, options);
            if (startPosition != 0)
            {
                options.AddHeader("Range", "bytes=" + startPosition + "-");
            }
            var response = await HttpExtensionMethods.GetResponseAsync(url, options);

            SaveResponseInfo(response, null);

            return(response);
            //return (await HttpExtensionMethods.SendAsync(url, options, null)).Response;
        }
Пример #2
0
        internal static async Task <HttpResponseMessage> GetAzureResponseAsync(string container, string name, long startPosition, Shaman.Types.WebFile file)
        {
            var options = new WebRequestOptions()
            {
                Timeout = 30000, TimeoutSecondRetrialAfterError = 10000, TimeoutStartSecondRetrial = null
            };

            if (startPosition != 0)
            {
                options.AddHeader("Range", "bytes=" + startPosition + "-");
            }
            var response = (await ExtensionMethods.SendAsync(new LazyUri(AzureApi.GetUrlForBlob(container, name)), options, null)).Response;
            IEnumerable <string> errs;

            if (response.Headers.TryGetValues("x-ms-meta-err", out errs))
            {
                throw MediaStream.ExceptionFromCachedResponse(errs.First());
            }

            return(response);
        }
Пример #3
0
 public Task PopulateRequestsAsync()
 {
     return this.Requests.Where(x => x.RequestBody == null).ForEachThrottledAsync(async x =>
     {
         try
         {
             var req = new WebRequestOptions();
             foreach (var header in x.RequestHeaders)
             {
                 req.AddHeader(header.Key, header.Value);
             }
             using (var resp = await new LazyUri(x.Url).GetResponseAsync(req))
             {
                 using (var sr = new StreamReader(await resp.Content.ReadAsStreamAsync()))
                 {
                     x.ResponseBody = await sr.ReadToEndAsync();
                 }
             }
         }
         catch (Exception)
         {
         }
     }, 1);
 }
Пример #4
0
 public Task PopulateRequestsAsync()
 {
     return(this.Requests.Where(x => x.RequestBody == null).ForEachThrottledAsync(async x =>
     {
         try
         {
             var req = new WebRequestOptions();
             foreach (var header in x.RequestHeaders)
             {
                 req.AddHeader(header.Key, header.Value);
             }
             using (var resp = await new LazyUri(x.Url).GetResponseAsync(req))
             {
                 using (var sr = new StreamReader(await resp.Content.ReadAsStreamAsync()))
                 {
                     x.ResponseBody = await sr.ReadToEndAsync();
                 }
             }
         }
         catch (Exception)
         {
         }
     }, 1));
 }
Пример #5
0
 public async Task<HttpResponseMessage> GetResponseAsync(long startPosition)
 {
     if (partialDownload != null && startPosition == 0)
     {
         var c = partialDownload;
         partialDownload = null;
         return c;
     }
     var options = new WebRequestOptions()
     {
         Timeout = 30000,
         TimeoutSecondRetrialAfterError = 10000,
         TimeoutStartSecondRetrial = null
     };
     var url = new LazyUri(this.Url);
     HttpExtensionMethods.ProcessMetaParameters(url, options);
     if (startPosition != 0) options.AddHeader("Range", "bytes=" + startPosition + "-");
     return await HttpExtensionMethods.GetResponseAsync(url, options);
     //return (await HttpExtensionMethods.SendAsync(url, options, null)).Response;
 }