From 664e4febe5962eacd95e97dc9ea6c517129e5b02 Mon Sep 17 00:00:00 2001 From: enbandari <305779913@qq.com> Date: Tue, 9 Sep 2014 11:35:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3afinal=E5=92=8CHttpClient?= =?UTF-8?q?=E9=87=8D=E4=BC=A0=E6=9C=BA=E5=88=B6=E7=9A=84=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/net/tsz/afinal/http/HttpHandler.java | 41 +++++++++++------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/src/net/tsz/afinal/http/HttpHandler.java b/src/net/tsz/afinal/http/HttpHandler.java index 2ee5dc2..cafb850 100644 --- a/src/net/tsz/afinal/http/HttpHandler.java +++ b/src/net/tsz/afinal/http/HttpHandler.java @@ -70,33 +70,28 @@ private void makeRequestWithRetries(HttpUriRequest request) throws IOException { request.setHeader("RANGE", "bytes="+fileLen+"-"); } - boolean retry = true; IOException cause = null; HttpRequestRetryHandler retryHandler = client.getHttpRequestRetryHandler(); - while (retry) { - try { + //这里的重试机制与HttpClient自己的重试自己冲突了,去掉while循环即可 + try { + if (!isCancelled()) { + HttpResponse response = client.execute(request, context); if (!isCancelled()) { - HttpResponse response = client.execute(request, context); - if (!isCancelled()) { - handleResponse(response); - } - } - return; - } catch (UnknownHostException e) { - publishProgress(UPDATE_FAILURE,e,0,"unknownHostException:can't resolve host"); - return; - } catch (IOException e) { - cause = e; - retry = retryHandler.retryRequest(cause, ++executionCount,context); - } catch (NullPointerException e) { - // HttpClient 4.0.x 之前的一个bug - // http://code.google.com/p/android/issues/detail?id=5255 - cause = new IOException("NPE in HttpClient" + e.getMessage()); - retry = retryHandler.retryRequest(cause, ++executionCount,context); - }catch (Exception e) { - cause = new IOException("Exception" + e.getMessage()); - retry = retryHandler.retryRequest(cause, ++executionCount,context); + handleResponse(response); + } } + return; + } catch (UnknownHostException e) { + publishProgress(UPDATE_FAILURE,e,0,"unknownHostException:can't resolve host"); + return; + } catch (IOException e) { + cause = e; + } catch (NullPointerException e) { + // HttpClient 4.0.x 之前的一个bug + // http://code.google.com/p/android/issues/detail?id=5255 + cause = new IOException("NPE in HttpClient" + e.getMessage()); + }catch (Exception e) { + cause = new IOException("Exception" + e.getMessage()); } if(cause!=null) throw cause;