Example usage for org.apache.http.conn.routing HttpRoutePlanner HttpRoutePlanner

List of usage examples for org.apache.http.conn.routing HttpRoutePlanner HttpRoutePlanner

Introduction

In this page you can find the example usage for org.apache.http.conn.routing HttpRoutePlanner HttpRoutePlanner.

Prototype

HttpRoutePlanner

Source Link

Usage

From source file:org.jboss.tools.aerogear.hybrid.core.internal.util.HttpUtil.java

/**
 * Set the proxy settings from ProxyService.
 * This method sets a {@link HttpRoutePlanner} to the client
 * /*from   www . java2s  .c o  m*/
 * @param client
 */
public static void setupProxy(DefaultHttpClient client) {
    client.setRoutePlanner(new HttpRoutePlanner() {

        @Override
        public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context)
                throws HttpException {
            IProxyService proxy = HybridCore.getDefault().getProxyService();
            HttpHost host = null;
            try {
                IProxyData[] proxyDatas = proxy.select(new URI(target.toURI()));
                for (IProxyData data : proxyDatas) {
                    if (data.getType().equals(IProxyData.HTTP_PROXY_TYPE)) {
                        host = new HttpHost(data.getHost(), data.getPort());
                        break;
                    }
                }
            } catch (URISyntaxException e) {
                HybridCore.log(IStatus.ERROR, "Incorrect URI", e);
            }
            if (host == null) {
                return new HttpRoute(target);
            }
            return new HttpRoute(target, null, host, false);
        }
    });

}

From source file:org.eclipse.thym.core.internal.util.HttpUtil.java

/**
 * Set the proxy settings from ProxyService.
 * This method sets a {@link HttpRoutePlanner} to the client
 * // w  w  w .j  a v a 2 s .  c om
 * @param client
 */
public static void setupProxy(final DefaultHttpClient client) {
    client.setRoutePlanner(new HttpRoutePlanner() {

        @Override
        public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context)
                throws HttpException {

            //use forced route if one exists
            HttpRoute route = ConnRouteParams.getForcedRoute(request.getParams());
            if (route != null)
                return route;

            // if layered, is it secure?
            final Scheme scheme = client.getConnectionManager().getSchemeRegistry().getScheme(target);
            final boolean secure = scheme.isLayered();

            HttpHost host = null;
            try {
                IProxyData[] proxyDatas = getEclipseProxyData(new URI(target.toURI()));
                for (IProxyData data : proxyDatas) {
                    if (data.getType().equals(IProxyData.HTTP_PROXY_TYPE)) {
                        host = new HttpHost(data.getHost(), data.getPort());
                        break;
                    }
                }
            } catch (URISyntaxException e) {
                HybridCore.log(IStatus.ERROR, "Incorrect URI", e);
            }
            if (host == null) {
                return new HttpRoute(target, null, secure);
            }
            return new HttpRoute(target, null, host, secure);
        }
    });

}

From source file:org.jboss.tools.feedhenry.ui.model.HttpUtil.java

/**
 * Set the proxy settings from ProxyService.
 * This method sets a {@link HttpRoutePlanner} to the client
 * /*  ww w  . j a v a2s  . com*/
 * @param client
 */
static void setupProxy(final DefaultHttpClient client) {
    client.setRoutePlanner(new HttpRoutePlanner() {

        /* (non-Javadoc)
         * @see org.apache.http.conn.routing.HttpRoutePlanner#determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext)
         */
        @Override
        public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context)
                throws HttpException {

            //use forced route if one exists
            HttpRoute route = ConnRouteParams.getForcedRoute(request.getParams());
            if (route != null)
                return route;

            // if layered, is it secure?
            final Scheme scheme = client.getConnectionManager().getSchemeRegistry().getScheme(target);
            final boolean secure = scheme.isLayered();

            final IProxyService proxy = FHPlugin.getDefault().getProxyService();
            HttpHost host = null;
            if (proxy != null) {
                try {
                    IProxyData[] proxyDatas = proxy.select(new URI(target.toURI()));
                    for (IProxyData data : proxyDatas) {
                        if (data.getType().equals(IProxyData.HTTP_PROXY_TYPE)) {
                            host = new HttpHost(data.getHost(), data.getPort());
                            break;
                        }
                    }
                } catch (URISyntaxException e) {
                    FHPlugin.log(IStatus.ERROR, "Incorrect URI", e);
                }
            }
            if (host == null) {
                return new HttpRoute(target, null, secure);
            }
            return new HttpRoute(target, null, host, secure);
        }
    });

}

From source file:com.allstate.client.core.SoapClient.java

private void configureProxy() {
    if (proxyUri == null) {
        return;/* w w  w. j  a va  2  s .c om*/
    }
    if (proxyTlsEnabled) {
        final HttpHost proxy = new HttpHost(proxyUri.getHost(), proxyUri.getPort(), HTTPS);
        // https://issues.apache.org/jira/browse/HTTPCLIENT-1318
        // http://stackoverflow.com/questions/15048102/httprouteplanner-how-does-it-work-with-an-https-proxy
        // To make the HttpClient talk to a HTTP End-site through an HTTPS Proxy, the route should be secure,
        //  but there should not be any Tunnelling or Layering.
        if (!endpointTlsEnabled) {
            client.setRoutePlanner(new HttpRoutePlanner() {
                @Override
                public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context) {
                    return new HttpRoute(target, null, proxy, true, RouteInfo.TunnelType.PLAIN,
                            RouteInfo.LayerType.PLAIN);
                }
            });
        }
        client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    } else {
        HttpHost proxy = new HttpHost(proxyUri.getHost(), proxyUri.getPort());
        client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    }
}

From source file:org.ellis.yun.search.test.httpclient.HttpClientTest.java

@Test
@SuppressWarnings("deprecation")
public void testConnectionManagerAndProxy() throws Exception {

    HttpParams params = new BasicHttpParams();

    Scheme http = new Scheme("http", PlainSocketFactory.getSocketFactory(), 80);
    SchemeRegistry sr = new SchemeRegistry();
    sr.register(http);/*from   w w w .  ja v  a2  s. c o m*/

    ClientConnectionManager cm = new ThreadSafeClientConnManager(params, sr);

    DefaultHttpClient httpClient = new DefaultHttpClient(cm, params);

    // ? HTTP?
    String proxyHost = "proxy.wdf.sap.corp";
    int proxyPort = 8080;
    httpClient.getCredentialsProvider().setCredentials(new AuthScope(proxyHost, proxyPort),
            new UsernamePasswordCredentials("", ""));
    HttpHost proxy = new HttpHost(proxyHost, proxyPort);
    httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);

    // ? HTTP?
    HttpRoutePlanner routePlanner = new HttpRoutePlanner() {

        public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context)
                throws HttpException {
            return new HttpRoute(target, null, new HttpHost("proxy.wdf.sap.corp", 8080), true);
        }
    };

    // httpClient.setRoutePlanner(routePlanner);

    String[] urisToGet = { "http://119.29.234.42/", //
            "http://119.29.234.42/solr", //
            "http://119.29.234.42/jenkins", //
            "http://119.29.234.42/jenkins/manage", //
            "http://119.29.234.42/jenkins/credential-store", //
    };

    // ?URI
    GetThread[] threads = new GetThread[urisToGet.length];
    for (int i = 0; i < threads.length; i++) {
        HttpGet httpget = new HttpGet(urisToGet[i]);
        threads[i] = new GetThread(httpClient, httpget);
    }

    // 
    for (int j = 0; j < threads.length; j++) {
        threads[j].start();
    }
    // ?
    for (int j = 0; j < threads.length; j++) {
        threads[j].join();
    }

    cm.closeIdleConnections(40, TimeUnit.SECONDS);
    cm.closeExpiredConnections();

}