Exemplo n.º 1
0
        internal static async Task <Stream> DownloadToStream(string url)
        {
            //Log.Info("要保存为流的文件路径: " + url);
            url = url.ToLower();
            var    uri        = new Uri(url);
            var    host       = uri.GetLeftPart(UriPartial.Authority);
            string requestUrl = host.EndsWith("/") ? url.Substring(host.Length) : url.Substring(host.Length + 1);
            var    client     = HttpClientContext.GetOrAddClient(host);
            //var content = await client.GetStreamAsync(requestUrl);
            var res = await client.GetAsync(requestUrl);

            if (res.IsSuccessStatusCode)
            {
                var content = await res.Content.ReadAsStreamAsync();

                var ms = new MemoryStream();
                await content.CopyToAsync(ms);

                //Log.Info("文件长度:" + ms.Length);
                ms.Position = 0;
                return(ms);
            }
            Log.Warn("要保存为流的文件不存在: " + url);
            return(null);
        }