List of usage examples for org.apache.http.concurrent Cancellable cancel
boolean cancel();
From source file:org.realityforge.proxy_servlet.AbstractProxyServlet.java
@SuppressWarnings("deprecation") @Override//from ww w. j a v a2 s .c o m protected void service(final HttpServletRequest servletRequest, final HttpServletResponse servletResponse) throws ServletException, IOException { final String proxyRequestUri = rewriteUrlFromRequest(servletRequest); final HttpRequest proxyRequest = newProxyRequest(servletRequest, proxyRequestUri); copyRequestHeaders(servletRequest, proxyRequest); setXForwardedForHeader(servletRequest, proxyRequest); proxyPrepared(proxyRequest); try { final HttpResponse proxyResponse = _client.execute(URIUtils.extractHost(_targetUri), proxyRequest); // Process the response final int statusCode = proxyResponse.getStatusLine().getStatusCode(); if (doResponseRedirectOrNotModifiedLogic(servletRequest, servletResponse, proxyResponse, statusCode)) { //just to be sure, but is probably a no-op EntityUtils.consume(proxyResponse.getEntity()); return; } // Pass the response code. This method with the "reason phrase" is deprecated but it's the only way to pass the // reason along too. servletResponse.setStatus(statusCode, proxyResponse.getStatusLine().getReasonPhrase()); copyResponseHeaders(proxyResponse, servletResponse); // Send the content to the client copyResponseEntity(proxyResponse, servletResponse); } catch (final Exception e) { //abort request, according to best practice with HttpClient if (proxyRequest instanceof Cancellable) { final Cancellable cancellable = (Cancellable) proxyRequest; cancellable.cancel(); } handleError(e); } }