On Thu, 2006-03-16 at 16:35 +0100, Thierry Sechao wrote:
> Thanks for your reply
> 
> Sorry, I did not subscribe to the mailing list before posting my 
> question, so I can not reply to your response.
> 
> I don't know if it is possible, but I would like to get the OutputStream 
> so that I can send information back to the server through the same 
> connexion.
> If I use the HttpClient.executeMethod(), how can I get the OutputStream?
> 
> Maybe, there is a better solution?
> 

There is. Just use ProxyClient included in the Jakarta Commons
HttpClient 3.0 distribution:
http://jakarta.apache.org/commons/httpclient/apidocs/org/apache/commons/httpclient/ProxyClient.html

Here's a sample app, which you can use as a reference:
http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/httpclient/trunk/src/examples/ProxyTunnelDemo.java?view=markup


Oleg


> //---------------------------
> Hi Thierry,
> 
> HttpConnections should not be used directly.  Please use
> HttpClient.executeMethod() instead. It will take care of handling
> authentication, tunneling via proxies, etc.
> 
> Mike
> 
> On 3/15/06, Thierry Sechao <[EMAIL PROTECTED]> wrote:
>  > Hi everybody,
>  >
>  > Does any one can provide me an sample to show me how to use
>  > HttpConnection.tunnelCreated()
>  >
>  > I would like to tunnel my proxy and establish a connection so that I can
>  > read iformation and send response over the same connexion.
>  > I try this, but it is not work
>  >
>  > HostConfiguration hostConf = new HostConfiguration() ;
>  >         try {
>  >             hostConf.setHost(new URI("https://myserver",false));
>  >             hostConf.setProxy("myproxy", 8080) ;
>  >
>  >             List authPrefs = new ArrayList(3);
>  >             authPrefs.add(AuthPolicy.DIGEST);
>  >             authPrefs.add(AuthPolicy.BASIC);
>  >             authPrefs.add(AuthPolicy.NTLM);
>  >
>  > //            This will exclude the NTLM authentication scheme
>  >
>  > httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY,
>  > authPrefs);
>  >             httpClient.getParams().setVersion(HttpVersion.HTTP_1_1) ;
>  >             httpClient.getParams().setAuthenticationPreemptive(true) ;
>  >
>  >             Credentials userCredential = new
>  > UsernamePasswordCredentials("mylogin", "mypassword") ;
>  >             httpClient.getState().setProxyCredentials(new
>  > AuthScope("proxyftm", 8080,AuthScope.ANY_REALM), userCredential) ;
>  >
>  >             httpClient.setHostConfiguration(hostConf) ;
>  >             HttpConnection conn =
>  > httpClient.getHttpConnectionManager().getConnection(hostConf) ;
>  >
>  >             conn.open() ;
>  >             conn.tunnelCreated() ;
>  >
>  >             GetMethod method = new GetMethod() ;
>  >             int code = method.execute(httpClient.getState(), conn) ;
>  >
>  >             if(code == 200 ) {
>  >                 BufferedReader din = new BufferedReader(new
>  > InputStreamReader(conn.getLastResponseInputStream()));
>  >                 String text = din.readLine() ;
>  >                 int i = 0 ;
>  >                 while(text != null){
>  >                     System.out.println(text);
>  >                     text = din.readLine() ;
>  >                 }
>  >
>  >                 System.out.println("fin.");
>  >             }
>  >
>  >         } catch(Throwable e) {
>  >             e.printStackTrace() ;
>  >         }
>  >
>  > I get this error:
>  >
>  > javax.net.ssl.SSLException: Unrecognized SSL message, plaintext 
> connection?
>  >     at com.sun.net.ssl.internal.ssl.InputRecord.b(DashoA12275)
>  >     at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA12275)
>  >     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
>  >     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA12275)
>  >     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
>  >     at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA12275)
>  >     at
>  > java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
>  >     at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
>  >     at
>  > 
> org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:827)
>  >     at
>  > 
> org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1975)
>  >     at
>  > 
> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
>  >     at test.KeepCLient.connectWithHttpConnection(KeepCLient.java:125)
>  >     at test.KeepCLient.main(KeepCLient.java:52)
>  >
>  > Thanks a lot.
> 
> ---------------------------------------------------------------------
> 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