Sto facendo una richiesta http. Sono su una piattaforma (Android) in cui le operazioni di rete spesso falliscono perché la connessione di rete potrebbe non essere immediatamente disponibile. Quindi mi piacerebbe provare la stessa connessione N volte prima di fallire completamente. Stavo pensando a qualcosa di simile:Nuovo tentativo di connessione 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;
}
Sono per lo più preoccupati per il collegamento di essere in uno stato che non è valido su tentativi successivi. In altre parole, devo ricreare completamente "httpRequest", dovrei evitare di chiamare httpRequest.abort() nel blocco catch e chiamarlo solo nell'ultimo errore?
Grazie