On Sun, 2005-02-13 at 15:16 +0300, Riad Souissi wrote: > > I will report the bug. > Actually, I looked at the code and HTTP 1.1 is hardcoded in the > ConnectMethod class.
Riad, Yes, you are right. I was wrong. HTTP/1.1 was indeed hardcoded. There's a patch for the problem http://issues.apache.org/bugzilla/show_bug.cgi?id=33541 > > I took the liberty to modify it for testing and I find out my issue was > not related to the HTTP version. > Basically, once the Proxy connection with the proxy is created (I > receive "HTTP/1.0 200 Connection established"), it fails when it calls > HttpConnection.tunnelCreated() > I took a look at the code in tunnelCreated(): > > SecureProtocolSocketFactory socketFactory = > (SecureProtocolSocketFactory) > protocolInUse.getSocketFactory(); > > socket = socketFactory.createSocket(socket, hostName, > portNumber, true); > int sndBufSize = this.params.getSendBufferSize(); > if (sndBufSize >= 0) { > socket.setSendBufferSize(sndBufSize); > > And it fails on the socket.setSendBufferSize call (I am not familiar on > how socket tunneling works in Sun's JDK, but is it possible that the > socket in question in this function is not tunneled in the initial > socket created with the proxy ?). > This us unlikely. HttpClient SSL tunneling is known to work without a hitch with Squid proxy and Microsoft ISA proxy. How reliable is BlueCoat-Security-Appliance, anyways? Does it work with non-Microsoft browsers? To me this looks like a proxy side problem. Do you have access to the proxy logs? Try commenting out send buffer size stuff and see if that makes any difference. Oleg > Anyway, here is the complete log (trace enabled). > > Thanks in advance, > riad > > 2005-02-13 14:31:18 GMT+03:00 [ISU.0000.9999C] > [xxxx]-[testConnection.HTTPUTILS]-[DEBUG.4]=> HTTPJakartaClient.postHtt > pData(KEYACCOUNTS.EBILL.xxxx.SSL.test): sending HTTP data... > 2005/02/13 14:31:18:062 GMT+03:00 [DEBUG] DefaultHttpParams - Set > parameter http.protocol.version = HTTP/1.0 > 2005/02/13 14:31:18:062 GMT+03:00 [DEBUG] DefaultHttpParams - Set > parameter http.method.retry-handler = stc.httputils.HT > [EMAIL PROTECTED] > 2005/02/13 14:31:18:062 GMT+03:00 [TRACE] HttpState - enter > HttpState.getCookies() > 2005-02-13 14:31:18 GMT+03:00 [ISU.0000.9999C] > [xxxx]-[testConnection.HTTPUTILS]-[DEBUG.4]=> HTTPJakartaClient.postHtt > pData(KEYACCOUNTS.EBILL.xxxx.SSL.test): sending string > 2005/02/13 14:31:18:078 GMT+03:00 [TRACE] HeaderElement - enter > HeaderElement.parseElements(String) > 2005/02/13 14:31:18:078 GMT+03:00 [TRACE] HeaderElement - enter > HeaderElement.parseElements(char[]) > 2005/02/13 14:31:18:078 GMT+03:00 [TRACE] HeaderElement - enter > HeaderElement.getParameterByName(String) > 2005/02/13 14:31:18:078 GMT+03:00 [TRACE] PostMethod - enter > PostMethod.clearRequestBody() > 2005/02/13 14:31:18:078 GMT+03:00 [TRACE] EntityEnclosingMethod - enter > EntityEnclosingMethod.clearRequestBody() > 2005/02/13 14:31:18:078 GMT+03:00 [DEBUG] DefaultHttpParams - Set > parameter http.protocol.cookie-policy = ignoreCookies > 2005/02/13 14:31:18:078 GMT+03:00 [TRACE] HttpClient - enter > HttpClient.executeMethod(HostConfiguration,HttpMethod) > 2005/02/13 14:31:18:078 GMT+03:00 [TRACE] HttpClient - enter > HttpClient.executeMethod(HostConfiguration,HttpMethod,HttpS > tate) > 2005/02/13 14:31:18:094 GMT+03:00 [TRACE] > MultiThreadedHttpConnectionManager - enter > HttpConnectionManager.getConnection > WithTimeout(HostConfiguration, long) > 2005/02/13 14:31:18:094 GMT+03:00 [DEBUG] > MultiThreadedHttpConnectionManager - > HttpConnectionManager.getConnection: con > fig = HostConfiguration[host=https://devwebm.xxxx.com, > proxyHost=http://proxy.yyyy.com:8080], timeout = 30000 > 2005/02/13 14:31:18:094 GMT+03:00 [TRACE] > MultiThreadedHttpConnectionManager - enter > HttpConnectionManager.ConnectionPoo > l.getHostPool(HostConfiguration) > 2005/02/13 14:31:18:094 GMT+03:00 [TRACE] > MultiThreadedHttpConnectionManager - enter > HttpConnectionManager.ConnectionPoo > l.getHostPool(HostConfiguration) > 2005/02/13 14:31:18:094 GMT+03:00 [DEBUG] > MultiThreadedHttpConnectionManager - Allocating new connection, > hostConfig=Hos > tConfiguration[host=https://devwebm.xxxx.com, > proxyHost=http://proxy.yyyy.com:8080] > 2005/02/13 14:31:18:094 GMT+03:00 [DEBUG] HttpMethodDirector - > Preemptively sending default basic credentials > 2005/02/13 14:31:18:109 GMT+03:00 [DEBUG] HttpMethodDirector - > Authenticating with BASIC <any realm>@proxy.yyyy.com:80 > 80 > 2005/02/13 14:31:18:109 GMT+03:00 [TRACE] HttpState - enter > HttpState.getProxyCredentials(AuthScope) > 2005/02/13 14:31:18:109 GMT+03:00 [TRACE] BasicScheme - enter > BasicScheme.authenticate(Credentials, HttpMethod) > 2005/02/13 14:31:18:109 GMT+03:00 [DEBUG] HttpMethodParams - Credential > charset not configured, using HTTP element chars > et > 2005/02/13 14:31:18:109 GMT+03:00 [TRACE] BasicScheme - enter > BasicScheme.authenticate(UsernamePasswordCredentials, Stri > ng) > 2005/02/13 14:31:18:109 GMT+03:00 [TRACE] HttpMethodBase - > HttpMethodBase.addRequestHeader(Header) > 2005/02/13 14:31:18:109 GMT+03:00 [DEBUG] HttpMethodDirector - > Authenticating with BASIC <any realm>@devwebm.xxxx.com: > 443 > 2005/02/13 14:31:18:109 GMT+03:00 [TRACE] HttpState - enter > HttpState.getCredentials(AuthScope) > 2005/02/13 14:31:18:109 GMT+03:00 [TRACE] BasicScheme - enter > BasicScheme.authenticate(Credentials, HttpMethod) > 2005/02/13 14:31:18:109 GMT+03:00 [DEBUG] HttpMethodParams - Credential > charset not configured, using HTTP element chars > et > 2005/02/13 14:31:18:125 GMT+03:00 [TRACE] BasicScheme - enter > BasicScheme.authenticate(UsernamePasswordCredentials, Stri > ng) > 2005/02/13 14:31:18:125 GMT+03:00 [TRACE] HttpMethodBase - > HttpMethodBase.addRequestHeader(Header) > 2005/02/13 14:31:18:125 GMT+03:00 [TRACE] HttpMethodDirector - Attempt > number 1 to process request > 2005/02/13 14:31:18:125 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.open() > 2005/02/13 14:31:18:125 GMT+03:00 [DEBUG] HttpConnection - Open > connection to proxy.yyyy.com:8080 > 2005/02/13 14:31:18:141 GMT+03:00 [TRACE] ConnectMethod - enter > ConnectMethod() > 2005/02/13 14:31:18:141 GMT+03:00 [TRACE] HttpMethodDirector - Attempt > number 1 to process request > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] ConnectMethod - enter > ConnectMethod.execute(HttpState, HttpConnection) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.execute(HttpState, HttpConnection) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.writeRequest(HttpState, HttpConnection) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.printLine(String) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.writeLine(byte[]) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[]) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[], int, int) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.writeLine() > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[]) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[], int, int) > 2005/02/13 14:31:18:172 GMT+03:00 [DEBUG] header - >> "CONNECT > devwebm.xxxx.com:443 HTTP/1.0" > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.writeRequestHeaders(HttpState,HttpConnec > tion) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] ConnectMethod - enter > ConnectMethod.addRequestHeaders(HttpState, HttpConnectio > n) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.addUserAgentRequestHeaders(HttpState, Ht > tpConnection) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.addHostRequestHeader(HttpState, HttpConn > ection) > 2005/02/13 14:31:18:188 GMT+03:00 [DEBUG] HttpMethodBase - Adding Host > request header > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.addProxyConnectionHeader(HttpState, Http > Connection) > 2005/02/13 14:31:18:188 GMT+03:00 [DEBUG] header - >> "User-Agent: > Jakarta Commons-HttpClient/3.0-rc1[\r][\n]" > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.print(String) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[]) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[], int, int) > 2005/02/13 14:31:18:188 GMT+03:00 [DEBUG] header - >> "Host: > devwebm.xxxx.com[\r][\n]" > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.print(String) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[]) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[], int, int) > 2005/02/13 14:31:18:188 GMT+03:00 [DEBUG] header - >> "Proxy-Connection: > Keep-Alive[\r][\n]" > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.print(String) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[]) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[], int, int) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.writeLine() > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[]) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.write(byte[], int, int) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.flushRequestOutputStream() > 2005/02/13 14:31:18:188 GMT+03:00 [DEBUG] header - >> "[\r][\n]" > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.flushRequestOutputStream() > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.readResponse(HttpState, HttpConnection) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.readStatusLine(HttpState, HttpConnection > ) > 2005/02/13 14:31:18:312 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.readLine() > 2005/02/13 14:31:18:312 GMT+03:00 [TRACE] HttpParser - enter > HttpParser.readLine(InputStream, String) > 2005/02/13 14:31:18:312 GMT+03:00 [TRACE] HttpParser - enter > HttpParser.readRawLine() > 2005/02/13 14:31:19:172 GMT+03:00 [DEBUG] header - << "HTTP/1.0 200 > Connection established[\r][\n]" > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.readResponseHeaders(HttpState,HttpConnec > tion) > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.getResponseInputStream() > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpParser - enter > HeaderParser.parseHeaders(InputStream, String) > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpParser - enter > HttpParser.readLine(InputStream, String) > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpParser - enter > HttpParser.readRawLine() > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpParser - enter > HttpParser.readLine(InputStream, String) > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpParser - enter > HttpParser.readRawLine() > 2005/02/13 14:31:19:172 GMT+03:00 [DEBUG] header - << "Proxy-agent: > BlueCoat-Security-Appliance[\r][\n]" > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.processResponseHeaders(HttpState, HttpCo > nnection) > 2005/02/13 14:31:19:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.readResponseBody(HttpState, HttpConnecti > on) > 2005/02/13 14:31:19:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.readResponseBody(HttpConnection) > 2005/02/13 14:31:19:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.getResponseInputStream() > 2005/02/13 14:31:19:188 GMT+03:00 [TRACE] HttpMethodBase - enter > HttpMethodBase.canResponseHaveBody(int) > 2005/02/13 14:31:19:188 GMT+03:00 [DEBUG] ConnectMethod - CONNECT status > code 200 > 2005/02/13 14:31:19:188 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.tunnelCreated() > 2005/02/13 14:31:19:188 GMT+03:00 [DEBUG] HttpConnection - Secure tunnel > to devwebm.xxxx.com:443 > 2005/02/13 14:31:19:219 GMT+03:00 [DEBUG] HttpMethodDirector - Closing > the connection: 2-exception=java.net.SocketExcept > ion: Socket closed > 2005/02/13 14:31:19:234 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.close() > 2005/02/13 14:31:19:234 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.closeSockedAndStreams() > 2005/02/13 14:31:19:234 GMT+03:00 [TRACE] HttpConnection - enter > HttpConnection.releaseConnection() > 2005/02/13 14:31:19:250 GMT+03:00 [DEBUG] HttpConnection - Releasing > connection back to connection manager. > 2005/02/13 14:31:19:250 GMT+03:00 [TRACE] > MultiThreadedHttpConnectionManager - enter > HttpConnectionManager.releaseConnec > tion(HttpConnection) > 2005/02/13 14:31:19:250 GMT+03:00 [DEBUG] > MultiThreadedHttpConnectionManager - Freeing connection, > hostConfig=HostConfig > uration[host=https://devwebm.xxxx.com, > proxyHost=http://proxy.yyyy.com:8080] > 2005/02/13 14:31:19:250 GMT+03:00 [TRACE] > MultiThreadedHttpConnectionManager - enter > HttpConnectionManager.ConnectionPoo > l.getHostPool(HostConfiguration) > 2005/02/13 14:31:19:250 GMT+03:00 [DEBUG] IdleConnectionHandler - Adding > connection at: 1108294279250 > 2005/02/13 14:31:19:250 GMT+03:00 [DEBUG] > MultiThreadedHttpConnectionManager - Notifying no-one, there are no > waiting th > reads > 2005-02-13 14:31:19 GMT+03:00 [ISU.0000.9999C] > [xxxx]-[testConnection.HTTPUTILS]-[ERROR]=> --------------------------- > ----- > 2005-02-13 14:31:19 GMT+03:00 [ISU.0000.9999C] > [xxxx]-[testConnection.HTTPUTILS]-[ERROR]=> HTTPJakartaClient.postHttpD > ata(KEYACCOUNTS.EBILL.xxxx.SSL.test): > ==> EXCEPTION: java.net.SocketException: Socket closed > java.net.SocketException: Socket closed > at java.net.PlainSocketImpl.socketGetOption(Native Method) > at > java.net.PlainSocketImpl.getOption(PlainSocketImpl.java(Compiled Code)) > at java.net.Socket.getSendBufferSize(Socket.java:548) > at > org.apache.commons.httpclient.HttpConnection.tunnelCreated(HttpConnectio > n.java:792) > at > org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpCon > nectionAdapter.tunnelCreated(MultiThr > eadedHttpConnectionManager.java:1499) > at > org.apache.commons.httpclient.HttpMethodDirector.executeConnect(HttpMeth > odDirector.java:492) > at > org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMe > thodDirector.java:363) > at > org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMetho > dDirector.java:168) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3 > 93) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3 > 46) > at > stc.httputils.HTTPJakartaClient.executeMethod(HTTPJakartaClient.java:396 > ) > at > stc.httputils.HTTPJakartaClient.postHttpData(HTTPJakartaClient.java:440) > at http.services.httpJakarta(services.java:97) > at java.lang.reflect.Method.invoke(Native Method) > at > com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java(Compiled > Code)) > at > com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java(Co > mpiled Code)) > at > com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProce > ssor.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceComple > tionImpl.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor > .java(Compiled Code)) > at > com.wm.app.b2b.server.ACLManager.process(ACLManager.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor > .java(Compiled Code)) > at > com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java(Compi > led Code)) > at > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(Com > piled Code)) > at > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(Inl > ined Compiled Code)) > at > com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java(Inlined > Compiled Code)) > at > com.wm.app.b2b.server.BaseService.invoke(BaseService.java(Compiled > Code)) > at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java(Compiled > Code)) > at com.wm.lang.flow.FlowState.invokeNode(FlowState.java(Compiled > Code)) > at com.wm.lang.flow.FlowState.step(FlowState.java(Compiled > Code)) > at com.wm.lang.flow.FlowState.invoke(FlowState.java(Compiled > Code)) > at > com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1749) > at > com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java(Co > mpiled Code)) > at > com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProce > ssor.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceComple > tionImpl.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor > .java(Compiled Code)) > at > com.wm.app.b2b.server.ACLManager.process(ACLManager.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor > .java(Compiled Code)) > at > com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java(Compi > led Code)) > at > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(Com > piled Code)) > at > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(Inl > ined Compiled Code)) > at > com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java(Inlined > Compiled Code)) > at > com.wm.app.b2b.server.BaseService.invoke(BaseService.java(Compiled > Code)) > at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java(Compiled > Code)) > at com.wm.lang.flow.FlowState.invokeNode(FlowState.java(Compiled > Code)) > at com.wm.lang.flow.FlowState.step(FlowState.java(Compiled > Code)) > at com.wm.lang.flow.FlowState.invoke(FlowState.java(Compiled > Code)) > at > com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1749) > at > com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java(Co > mpiled Code)) > at > com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProce > ssor.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceComple > tionImpl.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor > .java(Compiled Code)) > at > com.wm.app.b2b.server.ACLManager.process(ACLManager.java(Compiled Code)) > at > com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor > .java(Compiled Code)) > at > com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java(Compi > led Code)) > at > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(Com > piled Code)) > at > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(Inl > ined Compiled Code)) > at > com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java(Compiled > Code)) > at > com.wm.app.b2b.server.comm.DefaultServerRequestHandler.handleMessage(Def > aultServerRequestHandler.java:97) > at > com.wm.app.b2b.server.HTTPMessageHandler.process(HTTPMessageHandler.java > :167) > at com.wm.app.b2b.server.Dispatch.run(Dispatch.java(Compiled > Code)) > at com.wm.util.pool.PooledThread.run(PooledThread.java(Compiled > Code)) > at java.lang.Thread.run(Thread.java:512) > 2005-02-13 14:31:19 GMT+03:00 [ISU.0000.9999C] > [xxxx]-[testConnection.HTTPUTILS]-[ERROR]=> --------------------------- > ----- > > -----Original Message----- > From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED] > Sent: Saturday, February 12, 2005 4:57 PM > To: HttpClient User Discussion > Subject: RE: Problems using the HTTPClient through a proxy > > Any parameter can be applied either at the method, host, or client level > > See <http://jakarta.apache.org/commons/httpclient/3.0/preference- > api.html> > > The trouble is that the CONNECT method seems to be taking its parameters > from the client, ignoring those set at the method and host level > > Feel free to file a bug report and I'll provide a fix shortly > > Oleg > > On Sat, 2005-02-12 at 16:32 +0300, Riad Souissi wrote: > > You said setVersion() should work on Proxy comm; where do you apply it > ? > > I may have miss-used it (I have this: > > postmethod.getParams().setVersion(HttpVersion.HTTP_1_1). > > However, it should be possible to specify a different HTTP version for > > > proxy comm from the tunnled comm (it may be the case already, but I do > > > not see how). > > > > Here are the logs: > > > > <REMOVED> > > > -----Original Message----- > > From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED] > > Sent: Saturday, February 12, 2005 4:15 PM > > To: [email protected] > > Subject: Re: Problems using the HTTPClient through a proxy > > > > On Sat, 2005-02-12 at 15:35 +0300, Riad Souissi wrote: > > > Hi all, > > > > > > I am using HTTPClient 3.0-rc1. > > > I am connecting to an HTTPS site through a proxy. > > > > > > 1) I used HTTPLook to see the HTTP messages between the Proxy and > > > the HTTPClient. > > > I noticed that it always used HTTP/1.1 and I could not find how to > > > get > > > > > the HTTPClient to use HTTP/1.0 with the proxy instead. > > > The setVersion() method, when used, only impacts the tunneled HTTP > > > protocol between the HTTPClient and the target host. > > > > Riad, > > setVersion() should also work for proxy communication. Please post the > > > wire/context log of the HTTP session. See > > <http://jakarta.apache.org/commons/httpclient/3.0/logging.html> for > > details. I'll take a look at the log > > > > > > > > => Do you know how I can force the client to use HTTP/1.0 with the > > > proxy ? > > > > > > 2) I also that the HTTPClient does not specify the Content-Length in > > > > the HTTP header with the Proxy. > > > This seems to cause the Proxy to reject the connection from the > > > HTTPClient. > > > > It should not. The Content-Length (or Transfer-Encoding) is required > > for entity enclosing methods. HTTP CONNECT is not supposed to enclose > > an entity > > > > > > > > > > When I use the Internet Explorer, I can see that Content-Length is > > > specified (value is 0). > > > > > > > Well, after all, it is IE. > > > > Oleg > > > > > => Do you know how I can force the client to specify this header > > > with the proxy ? > > > > > > Thanks in advance, > > > riad > > > > > > > > DiscalimerThe information in this email and in any files transmitted with it, > is intended only for the addressee and may contain confidential and/or > privileged material. > Access to this email by anyone else is unauthorized. If you receive this in > error, > please contact the sender immediately and delete the material from any > computer. > If you are not the intended recipient, any disclosure, copying, distribution > or > any action taken or omitted to be taken in reliance on it, is strictly > prohibited. > Statement and opinions expressed in this e-mail are those of the sender, and > do not > necessarily reflect those of STC. > > --------------------------------------------------------------------- > 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]
