hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject RE: httpcore nio SSL/proxy support
Date Thu, 05 Jan 2012 21:46:48 GMT
On Thu, 2012-01-05 at 19:25 +0000, Yongjian Li wrote:
> Hi, one additional help. I tried to use the HttpAsyncClient to do upload via SSL&Proxy.
Everything works great, except I have to use host name. If I use IP address, I got exception.
Could you please help to see anything I did wrong? How to get around it? THX.
> 
> Code snip:
>      HttpAsyncClient httpclient = new DefaultHttpAsyncClient();
> 
>     HttpHost proxy = new HttpHost("10.97.196.145", 3128, "http");
>     httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
> 
>     SSLContext ctx = SSLContext.getInstance("TLS");
>     ctx.init(null, new X509TrustManager[]{new X509TrustManager(){
> 				public void checkClientTrusted(X509Certificate[] chain, String authType){;}
> 				public void checkServerTrusted(X509Certificate[] chain, String authType){;}
> 				public  X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0];}
> 			}},
> 			null);
> 
>    //the allow all host name seems have no effect here
>     SSLLayeringStrategy sslLS = new SSLLayeringStrategy(ctx, new AllowAllHostnameVerifier());
> 
>     AsyncScheme sch = new AsyncScheme("https", 8443, sslLS);
>     httpclient.getConnectionManager().getSchemeRegistry().register(sch);
>     httpclient.start();
>  
>     try {
>         //will work if changed to host name
>         String url = "https://10.97.196.123:8443/cfcc/t.jsp";
>         HttpUriRequest hp = new HttpPost(url);
> 		 
>         StringEntity se = new StringEntity("my dataddddddddddddddddddddddddddd");
> 
>         ((HttpPost)hp).setEntity(se);
> 
>         Future<Boolean> future = httpclient.execute( HttpAsyncMethods.create(hp),
  new MyResponseConsumer(), null);
> 
>             Boolean result = future.get();
>             if (result != null && result.booleanValue()) {
>                 System.out.println("Request successfully executed");
>             } else {
>                 System.out.println("Request failed");
>             }
>             System.out.println("Shutting down");
>         } finally {
>             httpclient.shutdown();
>         }
> 
> 
> 
> Exception if using IP address:
> 
> Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.http.ProtocolException:
Invalid request U
> RI: 10.97.196.123:8443
>         at org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:61)
>         at org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:70)
>         at AsyncClientHttpExchangeStreaming.main(AsyncClientHttpExchangeStreaming.java:124)
> Caused by: org.apache.http.ProtocolException: Invalid request URI: 10.97.196.123:8443
>         at org.apache.http.impl.client.RequestWrapper.<init>(RequestWrapper.java:83)
>         at org.apache.http.impl.nio.client.DefaultAsyncRequestDirector.wrapRequest(DefaultAsyncRequestDirector.java:560)
> 
>         at org.apache.http.impl.nio.client.DefaultAsyncRequestDirector.generateRequest(DefaultAsyncRequestDirector.java:
> 206)
>         at org.apache.http.nio.protocol.HttpAsyncClientProtocolHandler.requestReady(HttpAsyncClientProtocolHandler.java:
> 113)
>         at org.apache.http.impl.nio.client.LoggingClientProtocolHandler.requestReady(LoggingClientProtocolHandler.java:9
> 0)
>         at org.apache.http.nio.protocol.HttpAsyncClientProtocolHandler.connected(HttpAsyncClientProtocolHandler.java:65)
> 
>         at org.apache.http.impl.nio.client.LoggingClientProtocolHandler.connected(LoggingClientProtocolHandler.java:58)
>         at org.apache.http.impl.nio.DefaultClientIODispatch.onConnected(DefaultClientIODispatch.java:103)
>         at org.apache.http.impl.nio.DefaultClientIODispatch.onConnected(DefaultClientIODispatch.java:49)
>         at org.apache.http.impl.nio.AbstractIODispatch.connected(AbstractIODispatch.java:76)
>         at org.apache.http.impl.nio.reactor.BaseIOReactor.sessionCreated(BaseIOReactor.java:252)
>         at org.apache.http.impl.nio.reactor.AbstractIOReactor.processNewChannels(AbstractIOReactor.java:427)
>         at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:291)
>         at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
>         at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:59
> 9)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.net.URISyntaxException: Illegal character in scheme name at index 0:
10.97.196.123:8443
>         at java.net.URI$Parser.fail(URI.java:2809)
>         at java.net.URI$Parser.checkChars(URI.java:2982)
>         at java.net.URI$Parser.checkChar(URI.java:2992)
>         at java.net.URI$Parser.parse(URI.java:3008)
>         at java.net.URI.<init>(URI.java:578)
>         at org.apache.http.impl.client.RequestWrapper.<init>(RequestWrapper.java:81)
>         ... 15 more
> 
> 

What version of HttpAsyncClient are you using? Besides, a wire / context
log of the session would quite helpful.

Oleg

> 
> -----Original Message-----
> From: Oleg Kalnichevski [mailto:olegk@apache.org] 
> Sent: Wednesday, January 04, 2012 12:43 PM
> To: HttpComponents Project
> Subject: Re: httpcore nio SSL/proxy support
> 
> On Wed, Jan 04, 2012 at 04:59:34PM +0000, Yongjian Li wrote:
> > Hi, thank you very much for your message. I didn't see GA version of HttpAsyncClient,
I only see alpha3 build on download page. Is this the GA build? Or it is in HttpClient? THX.
> > 
> 
> There has been no GA release yes, as HttpAsyncClient is still considered API unstable.
It does not mean it is not usable, though.
> 
> Oleg 
> 
> 
> > -----Original Message-----
> > From: Oleg Kalnichevski [mailto:olegk@apache.org]
> > Sent: Wednesday, January 04, 2012 11:47 AM
> > To: dev@hc.apache.org
> > Subject: Re: httpcore nio SSL/proxy support
> > 
> > On Wed, 2012-01-04 at 15:59 +0000, Yongjian Li wrote:
> > > I read an old post that httpcore nio does not support SSL over proxy. Is this
addressed with the latest release? If not, could anyone help to give me some hints what I
need to overwrite so that I can get it working? THX.
> > > 
> > 
> > If you want an asynchronous HTTP client based on HttpCore that supports SSL via
proxy among other things, you should be using HttpAsyncClient.
> > 
> > http://hc.apache.org/httpcomponents-asyncclient-dev/index.html
> > 
> > Oleg
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org For additional 
> > commands, e-mail: dev-help@hc.apache.org
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org For additional 
> > commands, e-mail: dev-help@hc.apache.org
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org For additional commands, e-mail:
dev-help@hc.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message