慕宵子
慕宵子
  • 发布:2018-08-24 11:38
  • 更新:2018-10-20 02:41
  • 阅读:1668

【报Bug】Uploader上传文件如果服务器返回status>=400,获取不到返回数据

分类:HTML5+

@DCloud_heavensoft

上传H5文档(http://www.html5plus.org/doc/zh_cn/uploader.html)

根据HttpURLConnection文档,如果服务端返回状态码>=400,需要从getErrorStream读取数据

以下代码来自lib.5plus.base-release.aar/io/dcloud/net/UploadNetWork.class,我已在代码中提出一个修改意见,希望可以帮助H5变得更完善

public void responseUpload() {  
        try {  
            if (this.mRequest != null) {  
                this.mStatus = this.mRequest.getResponseCode();  
            }  

            String var1 = this.mRequest.getHeaderField("Set-Cookie");  
            if (!TextUtils.isEmpty(var1)) {  
                CookieManager.getInstance().setCookie(this.mRequestData.getUrl(), var1);  
            }  

            // =================开始=====================  
            InputStream var2 = this.mRequest.getInputStream();  
            //==============上面一句改为==================  
            InputStream var2;  
            try{  
                var2 = this.mRequest.getInputStream();  
            }catch(IOException e){  
                var2 = this.mRequest.getErrorStream();  
            }  
            // ==================结束====================  
            byte[] var3 = new byte[1024];  
            ByteArrayOutputStream var5 = new ByteArrayOutputStream();  

            // 省略  
        } catch (Exception var12) {  
            Logger.e("uploadnetwork", "responseUpload " + var12.getLocalizedMessage() + ";url=" + this.mRequestData.getUrl());  
            this.mResponseText = var12.getMessage();  
            this.mReqListener.onNetStateChanged(NetState.NET_ERROR, this.isAbort);  
        }  

    }
2018-08-24 11:38 负责人:无 分享
已邀请:
慕宵子

慕宵子 (作者)

@DCloud_heavensoft

慕宵子

慕宵子 (作者)

@DCloud

该问题目前已经被锁定, 无法添加新回复