Estoy haciendo una solicitud http. Estoy en una plataforma (Android) donde las operaciones de red a menudo fallan porque la conexión de red podría no estar disponible de inmediato. Por lo tanto, me gustaría probar la misma conexión N veces antes de fallar por completo. Estaba pensando en algo como esto:Reintentando una conexión HTTP
DefaultHttpClient mHttp = ...;
public HttpResponse runHttpRequest(HttpRequestBase httpRequest)
throws IOException
{
IOException last = null;
for (int attempt = 0; attempt < 3; attempt++) {
try {
HttpResponse response = mHttpClient.execute(httpRequest);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
return response;
}
} catch (IOException e) {
httpRequest.abort();
last = e;
}
}
throw last;
}
Lo que más me preocupa es la conexión de algún estado que no es válido en reintentos subsiguientes. En otras palabras, ¿necesito recrear completamente 'httpRequest', debería evitar llamar a httpRequest.abort() en el bloque catch, y solo llamarlo en la falla final?
Gracias