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:[email protected]] 
> 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:[email protected]]
> > Sent: Wednesday, January 04, 2012 11:47 AM
> > To: [email protected]
> > 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: [email protected] For additional 
> > commands, e-mail: [email protected]
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected] For additional 
> > commands, e-mail: [email protected]
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected] For additional 
> commands, e-mail: [email protected]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to