当前位置: 首页 > wzjs >正文

如何快速搭建个人网站淘宝运营培训班哪里有

如何快速搭建个人网站,淘宝运营培训班哪里有,建设公司起名简洁大气,dz论坛可以做商业网站一、背景 根据后端返回的url下载地址,去执行文件下载,将文件保存到SD卡。这里使用Retrofit网络框架。 二、代码实现 2.1、定义一个DownloadFileService interface DownloadFileService {StreamingGETsuspend fun downloadFile(Url fileUrl: String):ResponseBody…

一、背景

根据后端返回的url下载地址,去执行文件下载,将文件保存到SD卡。这里使用Retrofit网络框架。

二、代码实现

2.1、定义一个DownloadFileService
interface DownloadFileService {@Streaming@GETsuspend fun downloadFile(@Url fileUrl: String):ResponseBody
}
2.2、定义一个FileDownloadClient
private var mDownliadService: DownloadFileService? = nullfun getUploadFileService() :DownloadFileService{if(mDownliadService==null){val okHttpClient = OkHttpClient.Builder().callTimeout(0, TimeUnit.SECONDS)//0 代表不考虑请求的超时 这里的超时是指整个请求过程的超时,如果设置太短,任务还没执行完,会以超时结束任务,这里尤其要注意.connectTimeout(60, TimeUnit.SECONDS).readTimeout(60, TimeUnit.SECONDS).writeTimeout(60, TimeUnit.SECONDS).retryOnConnectionFailure(false)// 重连.followRedirects(false)// 重定向//.addInterceptor(RequestInterceptor(authorization,requestId,offset,uploadType))//.addInterceptor(RemoveContentLengthInterceptor())//.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)).build()val retrofit: Retrofit = Retrofit.Builder().baseUrl(DeviceUtil.getInstance().getServerIp()).addConverterFactory(GsonConverterFactory.create()).client(okHttpClient).build()mDownliadService= retrofit.create(DownloadFileService::class.java)}return mDownliadService!!}
2.3、定义一个DownloadCallback
interface DownloadCallback {fun onSuccess(srcApkTarPath:String)fun onProgress(progress: Int)fun onFailure(msg:String?)
}
2.4、定义一个FileDownloadManager,执行文件下载
class FileDownloadManager {private val TAG = "FileDownloadManager_"companion object {private var singleInstance: FileDownloadManager? = nullget() {// 懒汉模式if (null == field) {field = FileDownloadManager()}return field}@Synchronized // 添加注解,线程同步,线程安全fun getInstance(): FileDownloadManager {return singleInstance!! // 表示非空时执行}}fun doDownloadFile(appName:String,packageName: String,downUrl: String,fileSize: Long,fileMd5:String,downloadCallback: DownloadCallback) {try {val coroutineScope = CoroutineScope(Dispatchers.Default)coroutineScope.launch(Dispatchers.IO) {val response = FileDownloadClient.getUploadFileService().downloadFile(downUrl)val length = response.contentLength()XLogUtil.d("${TAG}doDownloadFile result appName:$appName,,,packageName:$packageName,,,length:$length,,,fileSize:$fileSize,,,downUrl:$downUrl")if (length > 0) {val folder = File(ConstantUtil.DOWNLOAD_FOLDER_PATH)if (!folder.exists()) {folder.mkdirs()}// 使用输入流保存响应体到文件val inputStream = response.byteStream()val fileName = "$packageName.tar"var fileTargetPath =ConstantUtil.DOWNLOAD_FOLDER_PATH + File.separator + fileNameval outputStream = FileOutputStream(fileTargetPath)val buf = ByteArray(1024)var downLoadFileSize = 0var lastProgress = 0do {val numread = inputStream.read(buf)if (numread == -1) {break}outputStream.write(buf, 0, numread)downLoadFileSize += numreadval progressValue =((downLoadFileSize * 100f) / length).toInt()//相同的进度值只回调一次if (progressValue > lastProgress) {lastProgress = progressValuedownloadCallback?.apply {onProgress(progressValue)}}} while (true)outputStream.flush()// 关闭文件输出流和输入流outputStream.close()//inputStream.close()val localFileMd5=FileUtil.getInstance().getFileMd5(fileTargetPath)if(localFileMd5==fileMd5){downloadCallback?.onSuccess(fileTargetPath)}else{downloadCallback?.onFailure("文件 md5 不一致,localFileMd5:$localFileMd5,,,fileMd5:$fileMd5")}}else{downloadCallback?.onFailure("读取文件len=0")}}} catch (e: Exception) {XLogUtil.e("${TAG}doDownloadFile Exception appName:$appName,,,packageName:$packageName,,,Exception:${e.message},,,fileSize:$fileSize,,,downUrl:$downUrl")downloadCallback?.onFailure(e.message)}}
}

http://www.dtcms.com/wzjs/341005.html

相关文章:

  • 垡头网站建设石家庄网络推广优化
  • 泉州网站设计招聘网策划书模板
  • 怎么查看网站是否备案四川seo推广方案
  • 福州专业做网站的公司哪家好seo建设
  • 小企业做网站怎么做宁波seo排名优化
  • 1688网站怎么样营销型网站分为哪几种
  • 怎么用自己的主机做网站服务器百度软件商店
  • 苏州建站模板搭建在线建站平台
  • html完整网站开发珠海网站设计
  • 网站建设課程百度信息流推广
  • wordpress全站广告位营销官网
  • mac xampp安装wordpress广州seo网站服务公司
  • 郑州网站设计公司排名整合营销包括哪些内容
  • 网站运营需要学什么软件开发平台
  • 域名 做网站和邮箱发布平台
  • 网站会员系统模板谷歌seo快速排名软件首页
  • 商城网站的运营长春网站建设推广
  • 淄博网站建设专家高权重友情链接
  • 望野注音版安徽网站推广优化
  • 做个爬架网站如何做做网络推广可以通过哪些渠道推广
  • 网站设计制作的介绍外链怎么发
  • 上海到北京免费优化推广网站的软件
  • 大型网站的标准东莞做网站最好的是哪家
  • 保养车哪个网站做的好百度网盘下载慢怎么解决
  • 炫酷的个人网站北京seo公司有哪些
  • 聊城做wap网站公司实时新闻热点
  • 网站建设的有什么需求网址导航怎样推广
  • 建设的网站如何让用户注册网络营销首先要做什么
  • 清除wordpress数据库中多余的seo哪里有培训
  • 电商网站建设毕业设计抖音竞价推广怎么做