@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);
}
}
2 个回复
慕宵子 (作者)
@DCloud_heavensoft
慕宵子 (作者)
@DCloud