private HttpFetchResult doGet(final String threadName, final String defaultCharset, final URL url, final HttpGet req) {
		int retry = 0;//After the execute request failure of the number of retries
		StatusLine status = null;
		HttpEntity entity = null;
		try {
			while (retry++ < 5) {
				try {
					HttpContext localContext = new BasicHttpContext();
					HttpResponse rsp = HttpConnectionManager.getHttpClient().execute(req, localContext);
					entity = rsp.getEntity();
					status = rsp.getStatusLine();
					if (status.getStatusCode() != HttpStatus.SC_OK) {
						req.abort();
						continue;
					}
					if (entity != null) {
						logger.debug(threadName + " request get " + url.toFullString() + " " + rsp.getStatusLine());
						return new HttpFetchResult(rsp, defaultCharset);
					} else {
						req.abort();
					}
				} catch (IOException ex) {
					// In case of an IOException the connection will be released
					// back to the connection manager automatically
					continue;
				} catch (RuntimeException e) {
					req.abort();
					logger.error(threadName + " request " + url.toFullString() + " " + e.getMessage());
					e.printStackTrace();
					continue;
				} catch (Throwable e) {
					logger.error(threadName + " request " + url.toFullString() + " " + e.getMessage());
					e.printStackTrace();
				}
			}
		} finally {
			try {
				if (entity == null && req != null) {
					req.abort();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		logger.warn(threadName + " request get " + url.toFullString() + " " + status);
		return null;
	}