Skip to content

Commit 12919a8

Browse files
Http状态码非200时,带上返回结果抛出异常
1 parent 43a1fd6 commit 12919a8

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

rxhttp/src/main/java/rxhttp/wrapper/exception/ExceptionHelper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ public class ExceptionHelper {
2323
*/
2424
public static ResponseBody throwIfFatal(@NonNull Response response) throws IOException {
2525
ResponseBody body = response.body();
26-
if (body == null || !response.isSuccessful())
26+
if (body == null)
2727
throw new HttpStatusCodeException(response);
28+
if (!response.isSuccessful()) {
29+
throw new HttpStatusCodeException(response, body.string());
30+
}
2831
return body;
2932
}
3033
}

rxhttp/src/main/java/rxhttp/wrapper/exception/HttpStatusCodeException.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,23 @@
1919
public final class HttpStatusCodeException extends IOException {
2020

2121
private String statusCode; //Http响应状态吗
22+
private String result; //返回结果
2223
private String requestMethod; //请求方法,Get/Post等
2324
private String requestUrl; //请求Url及参数
2425
private Headers responseHeaders; //响应头
2526

26-
HttpStatusCodeException(Response response) {
27+
public HttpStatusCodeException(Response response) {
28+
this(response, null);
29+
}
30+
31+
public HttpStatusCodeException(Response response, String result) {
2732
super(response.message());
2833
statusCode = String.valueOf(response.code());
2934
Request request = response.request();
3035
requestMethod = request.method();
3136
requestUrl = request.url().toString() + LogUtil.getRequestParams(request);
3237
responseHeaders = response.headers();
38+
this.result = result;
3339
}
3440

3541
@Nullable
@@ -54,13 +60,18 @@ public Headers getResponseHeaders() {
5460
return responseHeaders;
5561
}
5662

63+
public String getResult() {
64+
return result;
65+
}
66+
5767
@Override
5868
public String toString() {
5969
return getClass().getName() + ":" +
6070
" Method=" + requestMethod +
6171
" Code=" + statusCode +
6272
"\n\nurl = " + requestUrl +
6373
"\n\nHeaders = " + responseHeaders +
64-
"\nMessage = " + getMessage();
74+
"\nMessage = " + getMessage() +
75+
"\n\nResult = " + result;
6576
}
6677
}

0 commit comments

Comments
 (0)