List of usage examples for org.apache.http.impl.client RequestWrapper getOriginal
public HttpRequest getOriginal()
From source file:com.apigee.sdk.apm.http.impl.client.cache.ResponseProtocolCompliance.java
private ProtocolVersion getOriginalRequestProtocol(RequestWrapper request) { return request.getOriginal().getProtocolVersion(); }
From source file:com.apigee.sdk.apm.http.impl.client.cache.ResponseProtocolCompliance.java
private boolean originalRequestDidNotExpectContinue(RequestWrapper request) { try {/*from w w w. ja v a 2 s . c o m*/ HttpEntityEnclosingRequest original = (HttpEntityEnclosingRequest) request.getOriginal(); return !original.expectContinue(); } catch (ClassCastException ex) { return false; } }
From source file:org.vietspider.net.apache.DefaultRequestDirector.java
/** * Analyzes a response to check need for a followup. * * @param roureq the request and route. * @param response the response to analayze * @param context the context used for the current request execution * * @return the followup request and route if there is a followup, or * <code>null</code> if the response should be returned as is * * @throws HttpException in case of a problem * @throws IOException in case of an IO problem *//*w ww . jav a 2s . c o m*/ protected RoutedRequest handleResponse(RoutedRequest roureq, HttpResponse response, HttpContext context) throws HttpException, IOException { HttpRoute route = roureq.getRoute(); RequestWrapper request = roureq.getRequest(); HttpParams params = request.getParams(); if (HttpClientParams.isRedirecting(params) && this.redirectStrategy.isRedirected(request, response, context)) { if (redirectCount >= maxRedirects) { throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded"); } redirectCount++; // Virtual host cannot be used any longer virtualHost = null; HttpUriRequest redirect = redirectStrategy.getRedirect(request, response, context); HttpRequest orig = request.getOriginal(); // redirect.setHeaders(orig.getAllHeaders()); //VietSpider fix bug URI uri = redirect.getURI(); Header[] headers = orig.getAllHeaders(); for (Header header : headers) { if ("host".equalsIgnoreCase(header.getName())) { redirect.addHeader(new BasicHeader("Host", uri.getHost())); } else { redirect.addHeader(header); } } if (uri.getHost() == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } HttpHost newTarget = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()); // Unset auth scope targetAuthState.setAuthScope(null); proxyAuthState.setAuthScope(null); // Invalidate auth states if redirecting to another host if (!route.getTargetHost().equals(newTarget)) { targetAuthState.invalidate(); AuthScheme authScheme = proxyAuthState.getAuthScheme(); if (authScheme != null && authScheme.isConnectionBased()) { proxyAuthState.invalidate(); } } RequestWrapper wrapper = wrapRequest(redirect); wrapper.setParams(params); HttpRoute newRoute = determineRoute(newTarget, wrapper, context); RoutedRequest newRequest = new RoutedRequest(wrapper, newRoute); if (this.log.isDebugEnabled()) { this.log.debug("Redirecting to '" + uri + "' via " + newRoute); } return newRequest; } CredentialsProvider credsProvider = (CredentialsProvider) context .getAttribute(ClientContext.CREDS_PROVIDER); if (credsProvider != null && HttpClientParams.isAuthenticating(params)) { if (this.targetAuthHandler.isAuthenticationRequested(response, context)) { HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST); if (target == null) { target = route.getTargetHost(); } this.log.debug("Target requested authentication"); Map<String, Header> challenges = this.targetAuthHandler.getChallenges(response, context); try { processChallenges(challenges, this.targetAuthState, this.targetAuthHandler, response, context); } catch (AuthenticationException ex) { if (this.log.isWarnEnabled()) { this.log.warn("Authentication error: " + ex.getMessage()); return null; } } updateAuthState(this.targetAuthState, target, credsProvider); if (this.targetAuthState.getCredentials() != null) { // Re-try the same request via the same route return roureq; } else { return null; } } else { // Reset target auth scope this.targetAuthState.setAuthScope(null); } if (this.proxyAuthHandler.isAuthenticationRequested(response, context)) { HttpHost proxy = route.getProxyHost(); this.log.debug("Proxy requested authentication"); Map<String, Header> challenges = this.proxyAuthHandler.getChallenges(response, context); try { processChallenges(challenges, this.proxyAuthState, this.proxyAuthHandler, response, context); } catch (AuthenticationException ex) { if (this.log.isWarnEnabled()) { this.log.warn("Authentication error: " + ex.getMessage()); return null; } } updateAuthState(this.proxyAuthState, proxy, credsProvider); if (this.proxyAuthState.getCredentials() != null) { // Re-try the same request via the same route return roureq; } else { return null; } } else { // Reset proxy auth scope this.proxyAuthState.setAuthScope(null); } } return null; }
From source file:org.robolectric.shadows.httpclient.DefaultRequestDirector.java
/** * Analyzes a response to check need for a followup. * * @param roureq the request and route. * @param response the response to analayze * @param context the context used for the current request execution * * @return the followup request and route if there is a followup, or * <code>null</code> if the response should be returned as is * * @throws HttpException in case of a problem * @throws IOException in case of an IO problem *//* w w w.ja va2 s . c o m*/ protected RoutedRequest handleResponse(RoutedRequest roureq, HttpResponse response, HttpContext context) throws HttpException, IOException { HttpRoute route = roureq.getRoute(); RequestWrapper request = roureq.getRequest(); HttpParams params = request.getParams(); if (HttpClientParams.isRedirecting(params) && this.redirectHandler.isRedirectRequested(response, context)) { if (redirectCount >= maxRedirects) { throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded"); } redirectCount++; // Virtual host cannot be used any longer virtualHost = null; URI uri = this.redirectHandler.getLocationURI(response, context); HttpHost newTarget = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()); // Unset auth scope targetAuthState.setAuthScope(null); proxyAuthState.setAuthScope(null); // Invalidate auth states if redirecting to another host if (!route.getTargetHost().equals(newTarget)) { targetAuthState.invalidate(); AuthScheme authScheme = proxyAuthState.getAuthScheme(); if (authScheme != null && authScheme.isConnectionBased()) { proxyAuthState.invalidate(); } } HttpRedirect redirect = new HttpRedirect(request.getMethod(), uri); HttpRequest orig = request.getOriginal(); redirect.setHeaders(orig.getAllHeaders()); RequestWrapper wrapper = new RequestWrapper(redirect); wrapper.setParams(params); HttpRoute newRoute = determineRoute(newTarget, wrapper, context); RoutedRequest newRequest = new RoutedRequest(wrapper, newRoute); if (this.log.isDebugEnabled()) { this.log.debug("Redirecting to '" + uri + "' via " + newRoute); } return newRequest; } CredentialsProvider credsProvider = (CredentialsProvider) context .getAttribute(ClientContext.CREDS_PROVIDER); if (credsProvider != null && HttpClientParams.isAuthenticating(params)) { if (this.targetAuthHandler.isAuthenticationRequested(response, context)) { HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST); if (target == null) { target = route.getTargetHost(); } this.log.debug("Target requested authentication"); Map<String, Header> challenges = this.targetAuthHandler.getChallenges(response, context); try { processChallenges(challenges, this.targetAuthState, this.targetAuthHandler, response, context); } catch (AuthenticationException ex) { if (this.log.isWarnEnabled()) { this.log.warn("Authentication error: " + ex.getMessage()); return null; } } updateAuthState(this.targetAuthState, target, credsProvider); if (this.targetAuthState.getCredentials() != null) { // Re-try the same request via the same route return roureq; } else { return null; } } else { // Reset target auth scope this.targetAuthState.setAuthScope(null); } if (this.proxyAuthHandler.isAuthenticationRequested(response, context)) { HttpHost proxy = route.getProxyHost(); this.log.debug("Proxy requested authentication"); Map<String, Header> challenges = this.proxyAuthHandler.getChallenges(response, context); try { processChallenges(challenges, this.proxyAuthState, this.proxyAuthHandler, response, context); } catch (AuthenticationException ex) { if (this.log.isWarnEnabled()) { this.log.warn("Authentication error: " + ex.getMessage()); return null; } } updateAuthState(this.proxyAuthState, proxy, credsProvider); if (this.proxyAuthState.getCredentials() != null) { // Re-try the same request via the same route return roureq; } else { return null; } } else { // Reset proxy auth scope this.proxyAuthState.setAuthScope(null); } } return null; }
From source file:x.y.z.DefaultRequestDirector.java
protected RoutedRequest handleResponse(final RoutedRequest roureq, final HttpResponse response, final HttpContext context) throws HttpException, IOException { test();//from ww w .jav a 2 s. c o m String something = new String(); String somethingElse = ""; List<Something> somethingList = null; test(something); final HttpRoute route = roureq.getRoute(); final RequestWrapper request = roureq.getRequest(); final HttpParams params = request.getParams(); int i = org.apache.http.params.HttpConnectionParams.getConnectionTimeout(parmas); javax.rmi.CORBA obj; if (HttpClientParams.isAuthenticating(params)) { HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST); if (target == null) { target = route.getTargetHost(); } if (target.getPort() < 0) { final Scheme scheme = connManager.getSchemeRegistry().getScheme(target); target = new HttpHost(target.getHostName(), scheme.getDefaultPort(), target.getSchemeName()); } final boolean targetAuthRequested = this.authenticator.isAuthenticationRequested(target, response, this.targetAuthStrategy, targetAuthState, context); HttpHost proxy = route.getProxyHost(); if (proxy == null) { proxy = route.getTargetHost(); } final boolean proxyAuthRequested = this.authenticator.isAuthenticationRequested(proxy, response, this.proxyAuthStrategy, proxyAuthState, context); if (targetAuthRequested) { if (this.authenticator.authenticate(target, response, this.targetAuthStrategy, this.targetAuthState, context)) { return roureq; } } if (proxyAuthRequested) { if (this.authenticator.authenticate(proxy, response, this.proxyAuthStrategy, this.proxyAuthState, context)) { return roureq; } } } if (HttpClientParams.isRedirecting(params) && this.redirectStrategy.isRedirected(request, response, context)) { if (redirectCount >= maxRedirects) { throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded"); } redirectCount++; virtualHost = null; final HttpUriRequest redirect = redirectStrategy.getRedirect(request, response, context); final HttpRequest orig = request.getOriginal(); redirect.setHeaders(orig.getAllHeaders()); final URI uri = redirect.getURI(); final HttpHost newTarget = URIUtils.extractHost(uri); if (newTarget == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } if (!route.getTargetHost().equals(newTarget)) { this.log.debug("Resetting target auth state"); targetAuthState.reset(); final AuthScheme authScheme = proxyAuthState.getAuthScheme(); if (authScheme != null && authScheme.isConnectionBased()) { this.log.debug("Resetting proxy auth state"); proxyAuthState.reset(); } } final RequestWrapper wrapper = wrapRequest(redirect); wrapper.setParams(params); final HttpRoute newRoute = determineRoute(newTarget, wrapper, context); final RoutedRequest newRequest = new RoutedRequest(wrapper, newRoute); if (this.log.isDebugEnabled()) { this.log.debug("Redirecting to '" + uri + "' via " + newRoute); } return newRequest; } return null; }
From source file:org.apache.http.impl.client.DefaultRequestDirector.java
/** * Analyzes a response to check need for a followup. * * @param roureq the request and route. * @param response the response to analayze * @param context the context used for the current request execution * * @return the followup request and route if there is a followup, or * <code>null</code> if the response should be returned as is * * @throws HttpException in case of a problem * @throws IOException in case of an IO problem *///from ww w .j a v a 2 s .co m protected RoutedRequest handleResponse(final RoutedRequest roureq, final HttpResponse response, final HttpContext context) throws HttpException, IOException { final HttpRoute route = roureq.getRoute(); final RequestWrapper request = roureq.getRequest(); final HttpParams params = request.getParams(); if (HttpClientParams.isAuthenticating(params)) { HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST); if (target == null) { target = route.getTargetHost(); } if (target.getPort() < 0) { final Scheme scheme = connManager.getSchemeRegistry().getScheme(target); target = new HttpHost(target.getHostName(), scheme.getDefaultPort(), target.getSchemeName()); } final boolean targetAuthRequested = this.authenticator.isAuthenticationRequested(target, response, this.targetAuthStrategy, targetAuthState, context); HttpHost proxy = route.getProxyHost(); // if proxy is not set use target host instead if (proxy == null) { proxy = route.getTargetHost(); } final boolean proxyAuthRequested = this.authenticator.isAuthenticationRequested(proxy, response, this.proxyAuthStrategy, proxyAuthState, context); if (targetAuthRequested) { if (this.authenticator.authenticate(target, response, this.targetAuthStrategy, this.targetAuthState, context)) { // Re-try the same request via the same route return roureq; } } if (proxyAuthRequested) { if (this.authenticator.authenticate(proxy, response, this.proxyAuthStrategy, this.proxyAuthState, context)) { // Re-try the same request via the same route return roureq; } } } if (HttpClientParams.isRedirecting(params) && this.redirectStrategy.isRedirected(request, response, context)) { if (redirectCount >= maxRedirects) { throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded"); } redirectCount++; // Virtual host cannot be used any longer virtualHost = null; final HttpUriRequest redirect = redirectStrategy.getRedirect(request, response, context); final HttpRequest orig = request.getOriginal(); redirect.setHeaders(orig.getAllHeaders()); final URI uri = redirect.getURI(); final HttpHost newTarget = URIUtils.extractHost(uri); if (newTarget == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } // Reset auth states if redirecting to another host if (!route.getTargetHost().equals(newTarget)) { this.log.debug("Resetting target auth state"); targetAuthState.reset(); final AuthScheme authScheme = proxyAuthState.getAuthScheme(); if (authScheme != null && authScheme.isConnectionBased()) { this.log.debug("Resetting proxy auth state"); proxyAuthState.reset(); } } final RequestWrapper wrapper = wrapRequest(redirect); wrapper.setParams(params); final HttpRoute newRoute = determineRoute(newTarget, wrapper, context); final RoutedRequest newRequest = new RoutedRequest(wrapper, newRoute); if (this.log.isDebugEnabled()) { this.log.debug("Redirecting to '" + uri + "' via " + newRoute); } return newRequest; } return null; }
From source file:org.apache.http.impl.client.DefaultRequestDirector.java
/** * Analyzes a response to check need for a followup. * //from w w w.j a va 2s. c o m * @param roureq * the request and route. * @param response * the response to analayze * @param context * the context used for the current request execution * @return the followup request and route if there is a followup, or * {@code null} if the response should be returned as is * @throws HttpException * in case of a problem * @throws IOException * in case of an IO problem */ protected RoutedRequest handleResponse(final RoutedRequest roureq, final HttpResponse response, final HttpContext context) throws HttpException, IOException { String something = new String(); String somethingElse = ""; List<Something> somethingList = null; final HttpRoute route = roureq.getRoute(); final RequestWrapper request = roureq.getRequest(); final HttpParams params = request.getParams(); if (HttpClientParams.isAuthenticating(params)) { HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST); if (target == null) { target = route.getTargetHost(); } if (target.getPort() < 0) { final Scheme scheme = connManager.getSchemeRegistry().getScheme(target); target = new HttpHost(target.getHostName(), scheme.getDefaultPort(), target.getSchemeName()); } final boolean targetAuthRequested = this.authenticator.isAuthenticationRequested(target, response, this.targetAuthStrategy, targetAuthState, context); HttpHost proxy = route.getProxyHost(); if (proxy == null) { proxy = route.getTargetHost(); } final boolean proxyAuthRequested = this.authenticator.isAuthenticationRequested(proxy, response, this.proxyAuthStrategy, proxyAuthState, context); if (targetAuthRequested) { if (this.authenticator.authenticate(target, response, this.targetAuthStrategy, this.targetAuthState, context)) { return roureq; } } if (proxyAuthRequested) { if (this.authenticator.authenticate(proxy, response, this.proxyAuthStrategy, this.proxyAuthState, context)) { return roureq; } } } if (HttpClientParams.isRedirecting(params) && this.redirectStrategy.isRedirected(request, response, context)) { if (redirectCount >= maxRedirects) { throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded"); } redirectCount++; virtualHost = null; final HttpUriRequest redirect = redirectStrategy.getRedirect(request, response, context); final HttpRequest orig = request.getOriginal(); redirect.setHeaders(orig.getAllHeaders()); final URI uri = redirect.getURI(); final HttpHost newTarget = URIUtils.extractHost(uri); if (newTarget == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } if (!route.getTargetHost().equals(newTarget)) { this.log.debug("Resetting target auth state"); targetAuthState.reset(); final AuthScheme authScheme = proxyAuthState.getAuthScheme(); if (authScheme != null && authScheme.isConnectionBased()) { this.log.debug("Resetting proxy auth state"); proxyAuthState.reset(); } } final RequestWrapper wrapper = wrapRequest(redirect); wrapper.setParams(params); final HttpRoute newRoute = determineRoute(newTarget, wrapper, context); final RoutedRequest newRequest = new RoutedRequest(wrapper, newRoute); if (this.log.isDebugEnabled()) { this.log.debug("Redirecting to '" + uri + "' via " + newRoute); } return newRequest; } return null; }
From source file:org.apache.http.impl.client.StatiscicsLoggingRequestDirector.java
/** * Analyzes a response to check need for a followup. * * @param roureq the request and route. * @param response the response to analayze * @param context the context used for the current request execution * * @return the followup request and route if there is a followup, or * <code>null</code> if the response should be returned as is * * @throws HttpException in case of a problem * @throws IOException in case of an IO problem */// w ww .j a v a 2 s.c o m protected RoutedRequest handleResponse(RoutedRequest roureq, HttpResponse response, HttpContext context) throws HttpException, IOException { HttpRoute route = roureq.getRoute(); RequestWrapper request = roureq.getRequest(); HttpParams params = request.getParams(); if (HttpClientParams.isRedirecting(params) && this.redirectStrategy.isRedirected(request, response, context)) { if (redirectCount >= maxRedirects) { throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded"); } redirectCount++; // Virtual host cannot be used any longer virtualHost = null; HttpUriRequest redirect = redirectStrategy.getRedirect(request, response, context); HttpRequest orig = request.getOriginal(); redirect.setHeaders(orig.getAllHeaders()); URI uri = redirect.getURI(); if (uri.getHost() == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } HttpHost newTarget = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()); // Unset auth scope targetAuthState.setAuthScope(null); proxyAuthState.setAuthScope(null); // Invalidate auth states if redirecting to another host if (!route.getTargetHost().equals(newTarget)) { targetAuthState.invalidate(); AuthScheme authScheme = proxyAuthState.getAuthScheme(); if (authScheme != null && authScheme.isConnectionBased()) { proxyAuthState.invalidate(); } } RequestWrapper wrapper = wrapRequest(redirect); wrapper.setParams(params); HttpRoute newRoute = determineRoute(newTarget, wrapper, context); RoutedRequest newRequest = new RoutedRequest(wrapper, newRoute); if (this.log.isDebugEnabled()) { this.log.debug("Redirecting to '" + uri + "' via " + newRoute); } return newRequest; } CredentialsProvider credsProvider = (CredentialsProvider) context .getAttribute(ClientContext.CREDS_PROVIDER); if (credsProvider != null && HttpClientParams.isAuthenticating(params)) { if (this.targetAuthHandler.isAuthenticationRequested(response, context)) { HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST); if (target == null) { target = route.getTargetHost(); } this.log.debug("Target requested authentication"); Map<String, Header> challenges = this.targetAuthHandler.getChallenges(response, context); try { processChallenges(challenges, this.targetAuthState, this.targetAuthHandler, response, context); } catch (AuthenticationException ex) { if (this.log.isWarnEnabled()) { this.log.warn("Authentication error: " + ex.getMessage()); return null; } } updateAuthState(this.targetAuthState, target, credsProvider); if (this.targetAuthState.getCredentials() != null) { // Re-try the same request via the same route return roureq; } else { return null; } } else { // Reset target auth scope this.targetAuthState.setAuthScope(null); } if (this.proxyAuthHandler.isAuthenticationRequested(response, context)) { HttpHost proxy = route.getProxyHost(); this.log.debug("Proxy requested authentication"); Map<String, Header> challenges = this.proxyAuthHandler.getChallenges(response, context); try { processChallenges(challenges, this.proxyAuthState, this.proxyAuthHandler, response, context); } catch (AuthenticationException ex) { if (this.log.isWarnEnabled()) { this.log.warn("Authentication error: " + ex.getMessage()); return null; } } updateAuthState(this.proxyAuthState, proxy, credsProvider); if (this.proxyAuthState.getCredentials() != null) { // Re-try the same request via the same route return roureq; } else { return null; } } else { // Reset proxy auth scope this.proxyAuthState.setAuthScope(null); } } return null; }
From source file:org.apache.http.impl.nio.client.DefaultAsyncRequestDirector.java
private RoutedRequest handleRedirect() throws HttpException { if (this.redirectStrategy.isRedirected(this.currentRequest, this.currentResponse, this.localContext)) { final HttpRoute route = this.mainRequest.getRoute(); final RequestWrapper request = this.mainRequest.getRequest(); final int maxRedirects = this.params.getIntParameter(ClientPNames.MAX_REDIRECTS, 100); if (this.redirectCount >= maxRedirects) { throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded"); }/*from ww w . j a v a2s .com*/ this.redirectCount++; final HttpUriRequest redirect = this.redirectStrategy.getRedirect(this.currentRequest, this.currentResponse, this.localContext); final HttpRequest orig = request.getOriginal(); redirect.setHeaders(orig.getAllHeaders()); final URI uri = redirect.getURI(); if (uri.getHost() == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } final HttpHost newTarget = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()); // Reset auth states if redirecting to another host if (!route.getTargetHost().equals(newTarget)) { if (this.log.isDebugEnabled()) { this.log.debug("[exchange: " + this.id + "] Resetting target auth state"); } this.targetAuthState.reset(); final AuthScheme authScheme = this.proxyAuthState.getAuthScheme(); if (authScheme != null && authScheme.isConnectionBased()) { if (this.log.isDebugEnabled()) { this.log.debug("[exchange: " + this.id + "] Resetting proxy auth state"); } this.proxyAuthState.reset(); } } final RequestWrapper newRequest = wrapRequest(redirect); newRequest.setParams(this.params); final HttpRoute newRoute = determineRoute(newTarget, newRequest, this.localContext); if (this.log.isDebugEnabled()) { this.log.debug("[exchange: " + this.id + "] Redirecting to '" + uri + "' via " + newRoute); } return new RoutedRequest(newRequest, newRoute); } return null; }