List of usage examples for org.apache.http.client.config RequestConfig isRedirectsEnabled
public boolean isRedirectsEnabled()
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; } } }