Dbrant has uploaded a new change for review. https://gerrit.wikimedia.org/r/169962
Change subject: Handle network-related exceptions when doing a POST. ...................................................................... Handle network-related exceptions when doing a POST. Change-Id: I6abb3c7348c2c4241c9d3a26c738873157295097 --- M src/main/java/org/mediawiki/api/json/Api.java M src/main/java/org/mediawiki/api/json/RequestBuilder.java 2 files changed, 13 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/java-mwapi refs/changes/62/169962/1 diff --git a/src/main/java/org/mediawiki/api/json/Api.java b/src/main/java/org/mediawiki/api/json/Api.java index f6ae3be..e9d9df9 100644 --- a/src/main/java/org/mediawiki/api/json/Api.java +++ b/src/main/java/org/mediawiki/api/json/Api.java @@ -171,7 +171,7 @@ * @param requestBuilder The requestBuilder to use to construct the request * @return An {@link ApiResult} object which can be used to get the result of this query. */ - public ApiResult setupRequest(final int method, final RequestBuilder requestBuilder) { + public ApiResult setupRequest(final int method, final RequestBuilder requestBuilder) throws ApiException { HttpRequest request; switch(method) { case METHOD_GET: @@ -189,7 +189,15 @@ request = request.headers(customHeaders); } if (method == METHOD_POST) { - request.form(requestBuilder.getParams()); + // catch network-related exceptions, since the form() function performs a + // network request. + try { + request.form(requestBuilder.getParams()); + } catch (HttpRequest.HttpRequestException e) { + throw new ApiException(e.getCause()); + } catch (SecurityException e) { + throw new ApiException(e); + } } return new ApiResult(this, request); } diff --git a/src/main/java/org/mediawiki/api/json/RequestBuilder.java b/src/main/java/org/mediawiki/api/json/RequestBuilder.java index 8fff333..56d993c 100644 --- a/src/main/java/org/mediawiki/api/json/RequestBuilder.java +++ b/src/main/java/org/mediawiki/api/json/RequestBuilder.java @@ -58,7 +58,7 @@ * @param method HTTP Method to use when performing the request * @return An {@link ApiResult} object which can be used to get the result of this query. */ - private ApiResult setupRequest(final int method) { + private ApiResult setupRequest(final int method) throws ApiException { return api.setupRequest(method, this); } @@ -69,7 +69,7 @@ * * @return An {@link ApiResult} object which can be used to get the result of this query. */ - public ApiResult get() { + public ApiResult get() throws ApiException { return setupRequest(Api.METHOD_GET); } @@ -81,7 +81,7 @@ * * @return An {@link ApiResult} object which can be used to get the result of this query. */ - public ApiResult post() { + public ApiResult post() throws ApiException { return setupRequest(Api.METHOD_POST); } } -- To view, visit https://gerrit.wikimedia.org/r/169962 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6abb3c7348c2c4241c9d3a26c738873157295097 Gerrit-PatchSet: 1 Gerrit-Project: apps/android/java-mwapi Gerrit-Branch: master Gerrit-Owner: Dbrant <dbr...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits