diff --git a/src/com/loopj/android/http/AsyncHttpClient.java b/src/com/loopj/android/http/AsyncHttpClient.java index 6053a5693..efdf13a2c 100644 --- a/src/com/loopj/android/http/AsyncHttpClient.java +++ b/src/com/loopj/android/http/AsyncHttpClient.java @@ -335,7 +335,14 @@ public void get(Context context, String url, AsyncHttpResponseHandler responseHa * @param responseHandler the response handler instance that should handle the response. */ public void get(Context context, String url, RequestParams params, AsyncHttpResponseHandler responseHandler) { - sendRequest(httpClient, httpContext, new HttpGet(getUrlWithQueryString(url, params)), null, responseHandler, context); + HttpGet httpGet; + try { + httpGet = new HttpGet(getUrlWithQueryString(url, params)); + } catch (RuntimeException e) { + responseHandler.sendFailureMessage(e, e.getMessage()); + return; + } + sendRequest(httpClient, httpContext, httpGet, null, responseHandler, context); } /** diff --git a/src/com/loopj/android/http/AsyncHttpRequest.java b/src/com/loopj/android/http/AsyncHttpRequest.java index 9f4b19dc2..3aa3b5b2e 100644 --- a/src/com/loopj/android/http/AsyncHttpRequest.java +++ b/src/com/loopj/android/http/AsyncHttpRequest.java @@ -27,6 +27,7 @@ import org.apache.http.HttpResponse; import org.apache.http.client.HttpRequestRetryHandler; import org.apache.http.client.methods.HttpUriRequest; +import org.apache.http.conn.ConnectTimeoutException; import org.apache.http.impl.client.AbstractHttpClient; import org.apache.http.protocol.HttpContext; @@ -116,6 +117,11 @@ private void makeRequestWithRetries() throws ConnectException { responseHandler.sendFailureMessage(e, "socket time out"); } return; + } catch (ConnectTimeoutException e) { + if (responseHandler != null) { + responseHandler.sendFailureMessage(e, "connection time out"); + } + return; } catch (IOException e) { cause = e; retry = retryHandler.retryRequest(cause, ++executionCount, context);