Xutils3中的一些坑

本文主要探讨Xutils3在Android开发中遇到的问题,包括0B文件下载异常、0B文件上传问题、2G以上大文件下载异常以及重定向处理。针对这些问题,文中给出了相应的解决方案,如修改源码以支持0B文件上传和大文件下载,以及手动设置重定向处理。
摘要由CSDN通过智能技术生成

      Xutil框架相信很多Android开发程序员都不陌生,Xutil集注解、网络、图片加载、数据库操作与一身的Android端框架,更新的Xutil3更简单的方便,在这里不针对Xutil的中心内容进行讲解,主要讲在使用Xutil中发现的问题。

一、Xutil中0B文件无法下载问题

      由于公司需要,对于文件下载、上传等需要对0B文件也做到兼容,但是后期测试发现Xutil3在下载0B文件后直接抛出了异常,具体的抛错地方如下。

     如果文件下载正常的话,我们下载一个文件的执行顺序如下(正常情况下):onWaiting-->onStarted-->onLoading-->onSuccess-->onFinished。正常的情况下是这样的,但是在下载0B文件时,意想不到的是执行完onStarted后,直接进入了onError方法,错误如下,竟然提示没有Cache file not found???

    对于0B文件下载的出错的处理,这里我偷了个懒,没有深入研究为什么抛出这个异常,而是在它回调到onError时,再进行进一步的判断,使用最基础的HttpURLConnection的方法上传,暂时处理一下这个问题(待深入-_-),具体代码如下。

 /**
     * 从网络Url中下载文件
     *
     * @param urlStr
     * @param savePath
     * @throws IOException
     */
    private void downLoadFromUrl(String urlStr, String savePath) {
       new Thread(){
           @Override
           public void run() {
               super.run();
               FileOutputStream fos = null;
               InputStream inputStream = null;
               try {
                   URL url = new URL(urlStr);
                   HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                   //设置超时间为3秒
                   conn.setConnectTimeout(3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值