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

如何快速搭建个人网站百度公司怎么样

如何快速搭建个人网站,百度公司怎么样,网站滚动的图片是怎么做,深圳网站建设解决方案一、背景 根据后端返回的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/482474.html

相关文章:

  • wordpress自带的文章图片怎么修改电脑优化大师下载安装
  • 阳泉 网站建设合作百度广告费
  • 中国复转军人建设集团网站合肥seo软件
  • 母婴网站的功能设计网络seo软件
  • 网 公司上海排名优化seo
  • 建立独立网站需要注册公司吗今日重庆重要消息
  • 梁山有没有做企业网站的百度推广公司哪家比较靠谱
  • 网站运营费用预算新网
  • 竞价网宁波网站推广优化外包
  • 网站 公众号 建设方案seo关键词外包公司
  • 怎样把网站做的漂亮免费制作网站的平台
  • 微信公众号外链接网站开发上海搜索引擎优化seo
  • 服务器租用租赁学seo哪个培训好
  • 绵阳网站开发公司seo博客大全
  • 做网站收会员费违法吗爱站站长工具
  • 做景观私活的网站公司推广方法有哪些
  • 怎样制作免费的网站最好看免费观看高清大全
  • 怎么快速推广网站全网整合营销
  • 网站开发合同审查要点网络营销发展现状与趋势
  • 依兰县建设局网站网络营销推广的目的
  • 哪些网站可以做外链seo网站优化培训
  • wordpress多网站建设bing搜索国内版
  • iis 制作搜索网站哪个平台推广效果最好
  • 玩客云做网站青岛的seo服务公司
  • 晋江网站建设哪家好上海营销公司
  • 怎么做跳转不影响原网站排名免费网站服务器
  • 网优 是什么网站关键词优化排名公司
  • 中小型网站站内搜索实现市场营销策划方案书
  • 互联网app网站建设方案模板下载企业建设网站公司
  • 网站注册商标属于哪一类竞价托管推广哪家好