/// <summary>
        /// 下载文件
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DownloadResultDto Download(FileDownloadParam request)
        {
            new FileDownloadParamValidator().Validate(request).Check(HttpStatus.Err.Name);
            var ret = DownloadManager.Download(request.Url, request.SavePath);
            var res = ret.Code == (int)HttpCode.OK;

            return(new DownloadResultDto(res, ret.Text, ret));
        }
Esempio n. 2
0
        /// <summary>
        /// 下载文件(根据已授权的地址)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DownloadResultDto Download(FileDownloadParam request)
        {
            return(ToolCommon.GetResponse(() =>
            {
                new FileDownloadParamValidator().Validate(request).Check(HttpStatus.Err.Name);
                Uri uri = new Uri(request.Url);
                string host = $"{uri.Scheme}://{uri.Host}";
                using (var file = File.Open(request.SavePath, FileMode.OpenOrCreate))
                {
                    using (Stream stream = new HttpClient(host).GetStream(request.Url.Replace(host, "")))
                    {
                        int length = 4 * 1024;
                        var buf = new byte[length];
                        do
                        {
                            length = stream.Read(buf, 0, length);
                            file.Write(buf, 0, length);
                        } while (length != 0);
                    }
                }

                return new DownloadResultDto(true, "success");
            }, (message, ex) => new DownloadResultDto(false, message, ex)));
        }
 public DownloadResultDto Download(FileDownloadParam request)
 {
     throw new NotImplementedException();
 }