Example usage for org.apache.http.client.config RequestConfig isRedirectsEnabled

List of usage examples for org.apache.http.client.config RequestConfig isRedirectsEnabled

Introduction

In this page you can find the example usage for org.apache.http.client.config RequestConfig isRedirectsEnabled.

Prototype

public boolean isRedirectsEnabled() 

Source Link

Document

Determines whether redirects should be handled automatically.

Usage

From source file:io.cloudslang.content.httpclient.build.RequestConfigBuilderTest.java

@Test
public void buildNoProxyRoute() throws URISyntaxException, HttpException {
    RequestConfig reqConfig = requestConfigBuilder.buildRequestConfig();

    assertNotNull(reqConfig);/*from  w  w w .ja va  2 s .  c  o  m*/
    assertTrue(reqConfig.isRedirectsEnabled());
    assertEquals("0", String.valueOf(reqConfig.getConnectTimeout()));
    assertEquals("0", String.valueOf(reqConfig.getSocketTimeout()));
    assertNull(reqConfig.getProxy());
}

From source file:org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClientTests.java

@Test
public void testRequestConfigUseDefaultsNoOverride() throws Exception {
    RequestConfig result = getBuiltRequestConfig(UseDefaults.class, null);

    assertThat(result.isRedirectsEnabled(), is(false));
}

From source file:org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClientTests.java

@Test
public void testRequestConfigFollowRedirectsNoOverride() throws Exception {
    RequestConfig result = getBuiltRequestConfig(FollowRedirects.class, null);

    assertThat(result.isRedirectsEnabled(), is(true));
}

From source file:org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClientTests.java

@Test
public void testRequestConfigDoNotFollowRedirectsNoOverride() throws Exception {
    RequestConfig result = getBuiltRequestConfig(DoNotFollowRedirects.class, null);

    assertThat(result.isRedirectsEnabled(), is(false));
}

From source file:org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClientTests.java

@Test
public void testRequestConfigFollowRedirectsOverrideWithDoNotFollowRedirects() throws Exception {

    DefaultClientConfigImpl override = new DefaultClientConfigImpl();
    override.set(CommonClientConfigKey.FollowRedirects, false);
    override.set(CommonClientConfigKey.IsSecure, false);

    RequestConfig result = getBuiltRequestConfig(FollowRedirects.class, override);

    assertThat(result.isRedirectsEnabled(), is(false));
}

From source file:org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClientTests.java

@Test
public void testRequestConfigDoNotFollowRedirectsOverrideWithFollowRedirects() throws Exception {

    DefaultClientConfigImpl override = new DefaultClientConfigImpl();
    override.set(CommonClientConfigKey.FollowRedirects, true);
    override.set(CommonClientConfigKey.IsSecure, false);

    RequestConfig result = getBuiltRequestConfig(DoNotFollowRedirects.class, override);

    assertThat(result.isRedirectsEnabled(), is(true));
}

From source file:io.cloudslang.content.httpclient.build.RequestConfigBuilderTest.java

@Test
public void buildProxyRoute() throws URISyntaxException, HttpException {
    RequestConfig reqConfig = requestConfigBuilder.setProxyHost("myproxy.com").setProxyPort("80")
            .setSocketTimeout("-2").setConnectionTimeout("-2").setFollowRedirects("false").buildRequestConfig();
    assertNotNull(reqConfig);/*from   w  w w  . j a  v a2s  .c om*/
    assertFalse(reqConfig.isRedirectsEnabled());
    assertEquals("-2", String.valueOf(reqConfig.getConnectTimeout()));
    assertEquals("-2", String.valueOf(reqConfig.getSocketTimeout()));
    assertNotNull(reqConfig.getProxy());
    assertEquals("myproxy.com", reqConfig.getProxy().getHostName());
    assertEquals("80", String.valueOf(reqConfig.getProxy().getPort()));
}

From source file:org.springframework.boot.test.web.client.TestRestTemplateTests.java

@Test
public void options() throws Exception {
    TestRestTemplate template = new TestRestTemplate(HttpClientOption.ENABLE_REDIRECTS);
    CustomHttpComponentsClientHttpRequestFactory factory = (CustomHttpComponentsClientHttpRequestFactory) template
            .getRestTemplate().getRequestFactory();
    RequestConfig config = factory.getRequestConfig();
    assertThat(config.isRedirectsEnabled()).isTrue();
}

From source file:com.lehman.ic9.net.httpClient.java

/**
 * Gets a boolean with the flag for redirects enabled.
 * @return A boolean with true for redirects enabled.
 *//*from  ww  w . j av  a2  s  .  c o m*/
public boolean getRedirectsEnabled() {
    RequestConfig rc = this.rcb.build();
    return rc.isRedirectsEnabled();
}

From source file:org.apache.http.impl.execchain.RedirectExec.java

public CloseableHttpResponse execute(final HttpRoute route, final HttpRequestWrapper request,
        final HttpClientContext context, final HttpExecutionAware execAware) throws IOException, HttpException {
    Args.notNull(route, "HTTP route");
    Args.notNull(request, "HTTP request");
    Args.notNull(context, "HTTP context");

    final List<URI> redirectLocations = context.getRedirectLocations();
    if (redirectLocations != null) {
        redirectLocations.clear();//  w w w  .  j  av a 2  s. c  o m
    }

    final RequestConfig config = context.getRequestConfig();
    final int maxRedirects = config.getMaxRedirects() > 0 ? config.getMaxRedirects() : 50;
    HttpRoute currentRoute = route;
    HttpRequestWrapper currentRequest = request;
    for (int redirectCount = 0;;) {
        final CloseableHttpResponse response = requestExecutor.execute(currentRoute, currentRequest, context,
                execAware);
        try {
            if (config.isRedirectsEnabled()
                    && this.redirectStrategy.isRedirected(currentRequest, response, context)) {

                if (redirectCount >= maxRedirects) {
                    throw new RedirectException("Maximum redirects (" + maxRedirects + ") exceeded");
                }
                redirectCount++;

                final HttpRequest redirect = this.redirectStrategy.getRedirect(currentRequest, response,
                        context);
                if (!redirect.headerIterator().hasNext()) {
                    final HttpRequest original = request.getOriginal();
                    redirect.setHeaders(original.getAllHeaders());
                }
                currentRequest = HttpRequestWrapper.wrap(redirect);

                if (currentRequest instanceof HttpEntityEnclosingRequest) {
                    Proxies.enhanceEntity((HttpEntityEnclosingRequest) currentRequest);
                }

                final URI uri = currentRequest.getURI();
                final HttpHost newTarget = URIUtils.extractHost(uri);
                if (newTarget == null) {
                    throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri);
                }

                // Reset virtual host and auth states if redirecting to another host
                if (!currentRoute.getTargetHost().equals(newTarget)) {
                    final AuthState targetAuthState = context.getTargetAuthState();
                    if (targetAuthState != null) {
                        this.log.debug("Resetting target auth state");
                        targetAuthState.reset();
                    }
                    final AuthState proxyAuthState = context.getProxyAuthState();
                    if (proxyAuthState != null) {
                        final AuthScheme authScheme = proxyAuthState.getAuthScheme();
                        if (authScheme != null && authScheme.isConnectionBased()) {
                            this.log.debug("Resetting proxy auth state");
                            proxyAuthState.reset();
                        }
                    }
                }

                currentRoute = this.routePlanner.determineRoute(newTarget, currentRequest, context);
                if (this.log.isDebugEnabled()) {
                    this.log.debug("Redirecting to '" + uri + "' via " + currentRoute);
                }
                EntityUtils.consume(response.getEntity());
                response.close();
            } else {
                return response;
            }
        } catch (final RuntimeException ex) {
            response.close();
            throw ex;
        } catch (final IOException ex) {
            response.close();
            throw ex;
        } catch (final HttpException ex) {
            // Protocol exception related to a direct.
            // The underlying connection may still be salvaged.
            try {
                EntityUtils.consume(response.getEntity());
            } catch (final IOException ioex) {
                this.log.debug("I/O error while releasing connection", ioex);
            } finally {
                response.close();
            }
            throw ex;
        }
    }
}