diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b4df1d33..acd2c39c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ #Changelog -## 7.0.1 +## 7.0.2 (2014-10-29) + +### 修正 +* 修正response info isOK 的判断,避免返回部分数据时判断错误 + +## 7.0.1 (2014-10-24) ### 增加 * 增加maven 一键发布 diff --git a/library/src/main/java/com/qiniu/android/common/Config.java b/library/src/main/java/com/qiniu/android/common/Config.java index 18086ba76..c7e13b8d4 100644 --- a/library/src/main/java/com/qiniu/android/common/Config.java +++ b/library/src/main/java/com/qiniu/android/common/Config.java @@ -4,7 +4,7 @@ * Created by bailong on 14/10/8. */ public final class Config { - public static final String VERSION = "7.0.1"; + public static final String VERSION = "7.0.2"; public static final String UP_HOST = "upload.qiniu.com"; public static final String UP_HOST_BACKUP = "up.qiniu.com"; diff --git a/library/src/main/java/com/qiniu/android/http/ResponseHandler.java b/library/src/main/java/com/qiniu/android/http/ResponseHandler.java index 00dcc7f70..f8df702e5 100644 --- a/library/src/main/java/com/qiniu/android/http/ResponseHandler.java +++ b/library/src/main/java/com/qiniu/android/http/ResponseHandler.java @@ -57,6 +57,10 @@ private static ResponseInfo buildResponseInfo(int statusCode, Header[] headers, } } } + } else{ + if (reqId==null){ + err = "remote is not qiniu server!"; + } } if (statusCode == 0) { @@ -66,23 +70,25 @@ private static ResponseInfo buildResponseInfo(int statusCode, Header[] headers, return new ResponseInfo(statusCode, reqId, xlog, err); } - private static JSONObject buildJsonResp(byte[] body) { - try { - String str = new String(body, Config.CHARSET); - return new JSONObject(str); - } catch (JSONException e) { - e.printStackTrace(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return null; + private static JSONObject buildJsonResp(byte[] body) throws Exception { + + String str = new String(body, Config.CHARSET); + return new JSONObject(str); } @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { - ResponseInfo info = buildResponseInfo(statusCode, headers, null, null); + JSONObject obj = null; + Exception exception = null; + try { + obj = buildJsonResp(responseBody); + } catch (Exception e) { + exception = e; + } + + ResponseInfo info = buildResponseInfo(statusCode, headers, null, exception); Log.i("qiniu----success", info.toString()); - JSONObject obj = buildJsonResp(responseBody); + completionHandler.complete(info, obj); } diff --git a/library/src/main/java/com/qiniu/android/http/ResponseInfo.java b/library/src/main/java/com/qiniu/android/http/ResponseInfo.java index 4ca6b2073..8ac1b0455 100644 --- a/library/src/main/java/com/qiniu/android/http/ResponseInfo.java +++ b/library/src/main/java/com/qiniu/android/http/ResponseInfo.java @@ -38,7 +38,7 @@ public boolean isCancelled() { } public boolean isOK() { - return statusCode == 200; + return statusCode == 200 && error == null && reqId != null; } public boolean isNetworkBroken() { @@ -50,7 +50,7 @@ public boolean isServerError() { } public boolean needRetry() { - return isNetworkBroken() || isServerError() || statusCode == 406; + return isNetworkBroken() || isServerError() || statusCode == 406 || (statusCode == 200 && error != null); } public String toString() {