Awesome, that did the trick. Thanks Oleg.
On Sun, Dec 22, 2013 at 10:42 PM, Oleg Kalnichevski <ol...@apache.org>wrote: > On Sun, 2013-12-22 at 20:55 -1000, Arul Dhesiaseelan wrote: > > Hi, > > > > I am using a proxy to connect to a web service. Both proxy and web > service > > are secured with different set of credentials. I am trying to perform a > GET > > request using Apache HttpClient 4.3.1. > > > > URI proxyUri = URI.create("http://localhost:9000"); > > URI targetUri = URI.create("http://localhost:8080"); > > final HttpHost proxyHost = new HttpHost(proxyUri.getHost(), > > proxyUri.getPort(), proxyUri.getScheme()); > > final HttpHost targetHost = new HttpHost(targetUri.getHost(), > > targetUri.getPort(), targetUri.getScheme()); > > CredentialsProvider proxyCredentials = new > BasicCredentialsProvider(); > > proxyCredentials.setCredentials( > > new AuthScope(proxyUri.getHost(), proxyUri.getPort()), > > new UsernamePasswordCredentials("joe", "secret") > > ); > > > > CredentialsProvider serviceCredentials = new > BasicCredentialsProvider(); > > serviceCredentials.setCredentials( > > new AuthScope(targetHost.getHostName(), targetHost.getPort()), > > new UsernamePasswordCredentials("user", "password")); > > > > CloseableHttpClient httpclient = HttpClients.custom() > > .setDefaultCredentialsProvider(serviceCredentials).build();// > this > > sets only service creds > > > > > > It looks like you can set only one set of credentials at any time. I > could > > not set both on the client. I tried something like this, but it would not > > allow me to set proxy credentials on the request config. > > > > RequestConfig config = > > RequestConfig.custom().setProxy(proxyHost).build(); > > HttpGet httpGet = new HttpGet("/"); > > httpGet.setConfig(config); > > System.out.println("executing request to " + targetHost + " via " + > > proxyHost); > > > > CloseableHttpResponse response = httpclient.execute(targetHost, > > httpGet); > > > > How can I use both of these credentials on the client? Is this supported? > > > > Thanks! > > Arul > > Try this > --- > URI proxyUri = URI.create("http://localhost:9000"); > URI targetUri = URI.create("http://localhost:8080"); > HttpHost proxyHost = new HttpHost(proxyUri.getHost(), > proxyUri.getPort(), proxyUri.getScheme()); > HttpHost targetHost = new HttpHost(targetUri.getHost(), > targetUri.getPort(), targetUri.getScheme()); > CredentialsProvider credsProvider = new BasicCredentialsProvider(); > credsProvider.setCredentials( > new AuthScope(proxyUri.getHost(), proxyUri.getPort()), > new UsernamePasswordCredentials("joe", "secret") > ); > credsProvider.setCredentials( > new AuthScope(targetHost.getHostName(), targetHost.getPort()), > new UsernamePasswordCredentials("user", "password")); > CloseableHttpClient httpclient = HttpClients.custom() > .setDefaultCredentialsProvider(credsProvider).build(); > --- > > Oleg > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org > For additional commands, e-mail: httpclient-users-h...@hc.apache.org > >