下面列出了org.apache.http.client.methods.HttpRequestBase#abort() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private <X extends CosServiceRequest> void checkResponse(CosHttpRequest<X> request,
HttpRequestBase httpRequest,
HttpResponse httpResponse) {
if (!isRequestSuccessful(httpResponse)) {
try {
throw handlerErrorMessage(request, httpRequest, httpResponse);
} catch (IOException ioe) {
String errorMsg = "Unable to execute HTTP request: " + ioe.getMessage();
log.error(errorMsg, ioe);
CosServiceException cse = new CosServiceException(errorMsg, ioe);
throw cse;
} finally {
httpRequest.abort();
}
}
}
public CloseableHttpResponse execute(HttpRequestBase request) {
try {
return httpClient.execute(request);
} catch (IOException e) {
request.abort();
throw new ServiceException(e);
}
}
public CloseableHttpResponse execute(HttpRequestBase request,HttpClientContext httpClientContext) {
try {
return httpClient.execute(request,httpClientContext);
} catch (IOException e) {
request.abort();
throw new ServiceException(e);
}
}
/**
* Execute Http request and response code
* @param request - HTTP Request
* @param expectedCode - expected response code
* @return - response in JSONObject
*/
public JSON query(HttpRequestBase request, int expectedCode) throws IOException {
log.info("Requesting: " + request);
addRequiredHeader(request);
HttpParams requestParams = request.getParams();
requestParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, TIMEOUT * 1000);
requestParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, TIMEOUT * 1000);
synchronized (httpClient) {
String response;
try {
HttpResponse result = httpClient.execute(request);
int statusCode = result.getStatusLine().getStatusCode();
response = getResponseEntity(result);
if (statusCode != expectedCode) {
notifier.notifyAbout("Response with code " + statusCode + ": " + extractErrorMessage(response));
throw new IOException("API responded with wrong status code: " + statusCode);
} else {
log.debug("Response: " + response);
}
} finally {
request.abort();
}
if (response == null || response.isEmpty()) {
return JSONNull.getInstance();
} else {
return JSONSerializer.toJSON(response, new JsonConfig());
}
}
}
private HttpResponse executeOneRequest(HttpContext context, HttpRequestBase httpRequest) {
HttpResponse httpResponse = null;
try {
httpResponse = httpClient.execute(httpRequest, context);
} catch (IOException e) {
httpRequest.abort();
throw ExceptionUtils.createClientException(e);
}
return httpResponse;
}
@Override
public ExecutableHttpRequest prepareRequest(HttpExecuteRequest request) {
HttpRequestBase apacheRequest = toApacheRequest(request);
return new ExecutableHttpRequest() {
@Override
public HttpExecuteResponse call() throws IOException {
return execute(apacheRequest);
}
@Override
public void abort() {
apacheRequest.abort();
}
};
}
private static void safeAbort(boolean needAbort, HttpRequestBase request) {
if (needAbort && (request != null)) {
try {
request.abort();
} catch (Throwable t) {
// Ignore any errors
}
}
}
private static void abortConnection(final HttpRequestBase hrb) {
if (hrb != null) {
try {
hrb.abort();
} catch (Exception e) {
}
}
}