hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: Problems using the HTTPClient through a proxy
Date Mon, 14 Feb 2005 13:45:01 GMT
On Mon, Feb 14, 2005 at 03:35:17PM +0300, Riad Souissi wrote:
> 
> After commenting :
> 
> - socket.setSendBufferSize(sndBufSize);
> - socket.getSendBufferSize();
> - socket.getReceiveBufferSize();
> 
> Things started to work.
> 
> Then I restaured the original httpclient jar and switched the JVM from
> IBM-1.3.1 to Sun-1.4.2 and it worked.
> 

Riad,

In your previous message you indicated that you were running Sun's JVM
and the exception was occurring when executing setSendBufferSize, which
misled me. The problem with getSendBufferSize in older (read, buggier)
IBM JVMs is well known to us:

http://jakarta.apache.org/commons/httpclient/3.0/sslguide.html#Known%20limitations%20and%20problems

Anyways, I'm glad the problem has been resolved

Oleg


> Now, remains the NTLM thing...
> 
> Thanks for the help!
> riad
> 
> 
> 
> -----Original Message-----
> From: Oleg Kalnichevski [mailto:olegk@apache.org]
> Sent: Sunday, February 13, 2005 8:41 PM
> To: HttpClient User Discussion
> Subject: RE: Problems using the HTTPClient through a proxy
> 
> 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
> > TPJakartaClient$MyHttpMethodRetryHandler@33cb63d3
> > 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(HttpConnect
> > io
> > n.java:792)
> >         at
> > org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpC
> > on
> > nectionAdapter.tunnelCreated(MultiThr
> > eadedHttpConnectionManager.java:1499)
> >         at
> > org.apache.commons.httpclient.HttpMethodDirector.executeConnect(HttpMe
> > th
> > odDirector.java:492)
> >         at
> > org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Http
> > Me
> > thodDirector.java:363)
> >         at
> > org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMet
> > ho
> > 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:3
> > 96
> > )
> >         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(StatisticsPro
> > ce
> > ssor.java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceComp
> > le
> > tionImpl.java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcess
> > or
> > .java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.ACLManager.process(ACLManager.java(Compiled
> Code))
> >         at
> > com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcess
> > or
> > .java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java(Com
> > pi
> > led Code))
> >         at
> > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(C
> > om
> > piled Code))
> >         at
> > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(I
> > nl
> > ined Compiled Code))
> >         at
> > com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java(Inline
> > d
> > 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(StatisticsPro
> > ce
> > ssor.java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceComp
> > le
> > tionImpl.java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcess
> > or
> > .java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.ACLManager.process(ACLManager.java(Compiled
> Code))
> >         at
> > com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcess
> > or
> > .java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java(Com
> > pi
> > led Code))
> >         at
> > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(C
> > om
> > piled Code))
> >         at
> > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(I
> > nl
> > ined Compiled Code))
> >         at
> > com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java(Inline
> > d
> > 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(StatisticsPro
> > ce
> > ssor.java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceComp
> > le
> > tionImpl.java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcess
> > or
> > .java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.ACLManager.process(ACLManager.java(Compiled
> Code))
> >         at
> > com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcess
> > or
> > .java(Compiled Code))
> >         at
> > com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java(Com
> > pi
> > led Code))
> >         at
> > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(C
> > om
> > piled Code))
> >         at
> > com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java(I
> > nl
> > ined Compiled Code))
> >         at
> > com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java(Compil
> > ed
> > Code))
> >         at
> > com.wm.app.b2b.server.comm.DefaultServerRequestHandler.handleMessage(D
> > ef
> > aultServerRequestHandler.java:97)
> >         at
> > com.wm.app.b2b.server.HTTPMessageHandler.process(HTTPMessageHandler.ja
> > va
> > :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:olegk@apache.org]
> > 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:olegk@apache.org]
> > > Sent: Saturday, February 12, 2005 4:15 PM
> > > To: httpclient-user@jakarta.apache.org
> > > 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: httpclient-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
> > httpclient-user-help@jakarta.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> 
> 
> 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: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Mime
View raw message