Return-Path: Delivered-To: apmail-jakarta-httpclient-user-archive@www.apache.org Received: (qmail 4064 invoked from network); 14 Feb 2005 12:52:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 14 Feb 2005 12:52:44 -0000 Received: (qmail 78127 invoked by uid 500); 14 Feb 2005 12:52:42 -0000 Delivered-To: apmail-jakarta-httpclient-user-archive@jakarta.apache.org Received: (qmail 78102 invoked by uid 500); 14 Feb 2005 12:52:42 -0000 Mailing-List: contact httpclient-user-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: "HttpClient User Discussion" Reply-To: "HttpClient User Discussion" Delivered-To: mailing list httpclient-user@jakarta.apache.org Received: (qmail 78087 invoked by uid 99); 14 Feb 2005 12:52:42 -0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of rsouissi.c@stc.com.sa designates 212.118.128.74 as permitted sender) Received: from stcimss2.stc.com.sa (HELO STCIMSS2.stc.com.sa) (212.118.128.74) by apache.org (qpsmtpd/0.28) with ESMTP; Mon, 14 Feb 2005 04:52:39 -0800 Received: from ednwebmail01.stc.corp ([212.118.128.84]) by STCIMSS2.stc.com.sa with InterScan Messaging Security Suite; Mon, 14 Feb 2005 15:34:29 +0300 Received: from ednriymsg01.stc.corp ([10.32.2.64]) by ednwebmail01.stc.corp with Microsoft SMTPSVC(5.0.2195.6713); Mon, 14 Feb 2005 15:35:17 +0300 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.0.6603.0 Subject: RE: Problems using the HTTPClient through a proxy Date: Mon, 14 Feb 2005 15:35:17 +0300 Message-ID: <640C7CC024362341A9358AD20CFED918F4F1CE@EDNRIYMSG01.stc.corp> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Problems using the HTTPClient through a proxy Thread-Index: AcUR86JD1SEAWLMnQseLqhiuJdPFggAlrcTQ From: "Riad Souissi" To: "HttpClient User Discussion" X-OriginalArrivalTime: 14 Feb 2005 12:35:17.0445 (UTC) FILETIME=[A39CD750:01C51291] X-imss-version: 2.022 X-imss-result: Passed X-imss-scores: Clean:99.90000 C:2 M:0 S:5 R:5 X-imss-settings: Baseline:1 C:1 M:1 S:1 R:1 (0.0000 0.0000) X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N 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. Now, remains the NTLM thing... Thanks for the help! riad =0D -----Original Message----- From: Oleg Kalnichevski [mailto:olegk@apache.org]=0D 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: >=0D > I will report the bug. > Actually, I looked at the code and HTTP 1.1 is hardcoded in the=0D > 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=3D33541 >=0D > I took the liberty to modify it for testing and I find out my issue=0D > was not related to the HTTP version. > Basically, once the Proxy connection with the proxy is created (I=0D > receive "HTTP/1.0 200 Connection established"), it fails when it calls > HttpConnection.tunnelCreated() > I took a look at the code in tunnelCreated(): >=0D > SecureProtocolSocketFactory socketFactory =3D > (SecureProtocolSocketFactory)=0D > protocolInUse.getSocketFactory(); >=0D > socket =3D socketFactory.createSocket(socket, hostName,=0D > portNumber, true); > int sndBufSize =3D this.params.getSendBufferSize(); > if (sndBufSize >=3D 0) { > socket.setSendBufferSize(sndBufSize); >=0D > And it fails on the socket.setSendBufferSize call (I am not familiar=0D > on how socket tunneling works in Sun's JDK, but is it possible that=0D > the socket in question in this function is not tunneled in the initial > socket created with the proxy ?). >=0D 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). >=0D > Thanks in advance, > riad >=0D > 2005-02-13 14:31:18 GMT+03:00 [ISU.0000.9999C]=0D > [xxxx]-[testConnection.HTTPUTILS]-[DEBUG.4]=3D>=0D > HTTPJakartaClient.postHtt > pData(KEYACCOUNTS.EBILL.xxxx.SSL.test): sending HTTP data... > 2005/02/13 14:31:18:062 GMT+03:00 [DEBUG] DefaultHttpParams - Set=0D > parameter http.protocol.version =3D HTTP/1.0 > 2005/02/13 14:31:18:062 GMT+03:00 [DEBUG] DefaultHttpParams - Set=0D > parameter http.method.retry-handler =3D 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]=0D > [xxxx]-[testConnection.HTTPUTILS]-[DEBUG.4]=3D>=0D > 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 -=0D > enter > EntityEnclosingMethod.clearRequestBody() > 2005/02/13 14:31:18:078 GMT+03:00 [DEBUG] DefaultHttpParams - Set=0D > parameter http.protocol.cookie-policy =3D 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=0D > HttpClient.executeMethod(HostConfiguration,HttpMethod,HttpS > tate) > 2005/02/13 14:31:18:094 GMT+03:00 [TRACE]=0D > MultiThreadedHttpConnectionManager - enter=0D > HttpConnectionManager.getConnection > WithTimeout(HostConfiguration, long) > 2005/02/13 14:31:18:094 GMT+03:00 [DEBUG]=0D > MultiThreadedHttpConnectionManager - > HttpConnectionManager.getConnection: con fig =3D=0D > HostConfiguration[host=3Dhttps://devwebm.xxxx.com, > proxyHost=3Dhttp://proxy.yyyy.com:8080], timeout =3D 30000 > 2005/02/13 14:31:18:094 GMT+03:00 [TRACE]=0D > MultiThreadedHttpConnectionManager - enter=0D > HttpConnectionManager.ConnectionPoo > l.getHostPool(HostConfiguration) > 2005/02/13 14:31:18:094 GMT+03:00 [TRACE]=0D > MultiThreadedHttpConnectionManager - enter=0D > HttpConnectionManager.ConnectionPoo > l.getHostPool(HostConfiguration) > 2005/02/13 14:31:18:094 GMT+03:00 [DEBUG]=0D > MultiThreadedHttpConnectionManager - Allocating new connection,=0D > hostConfig=3DHos tConfiguration[host=3Dhttps://devwebm.xxxx.com, > proxyHost=3Dhttp://proxy.yyyy.com:8080] > 2005/02/13 14:31:18:094 GMT+03:00 [DEBUG] HttpMethodDirector -=0D > Preemptively sending default basic credentials > 2005/02/13 14:31:18:109 GMT+03:00 [DEBUG] HttpMethodDirector -=0D > Authenticating with BASIC @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=0D > BasicScheme.authenticate(Credentials, HttpMethod) > 2005/02/13 14:31:18:109 GMT+03:00 [DEBUG] HttpMethodParams -=0D > Credential charset not configured, using HTTP element chars et > 2005/02/13 14:31:18:109 GMT+03:00 [TRACE] BasicScheme - enter=0D > 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 -=0D > Authenticating with BASIC @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=0D > BasicScheme.authenticate(Credentials, HttpMethod) > 2005/02/13 14:31:18:109 GMT+03:00 [DEBUG] HttpMethodParams -=0D > Credential charset not configured, using HTTP element chars et > 2005/02/13 14:31:18:125 GMT+03:00 [TRACE] BasicScheme - enter=0D > 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=0D > 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=0D > ConnectMethod.execute(HttpState, HttpConnection) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpMethodBase - enter=0D > HttpMethodBase.execute(HttpState, HttpConnection) > 2005/02/13 14:31:18:172 GMT+03:00 [TRACE] HttpMethodBase - enter=0D > 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=0D > 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=0D > 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=0D > HttpMethodBase.writeRequestHeaders(HttpState,HttpConnec > tion) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] ConnectMethod - enter=0D > ConnectMethod.addRequestHeaders(HttpState, HttpConnectio > n) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter=0D > HttpMethodBase.addUserAgentRequestHeaders(HttpState, Ht > tpConnection) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter=0D > 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=0D > 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=0D > 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=0D > 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=0D > 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=0D > 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=0D > HttpMethodBase.readResponse(HttpState, HttpConnection) > 2005/02/13 14:31:18:188 GMT+03:00 [TRACE] HttpMethodBase - enter=0D > 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=0D > 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=0D > Connection established[\r][\n]" > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpMethodBase - enter=0D > 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=0D > HeaderParser.parseHeaders(InputStream, String) > 2005/02/13 14:31:19:172 GMT+03:00 [TRACE] HttpParser - enter=0D > 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=0D > 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=0D > HttpMethodBase.processResponseHeaders(HttpState, HttpCo > nnection) > 2005/02/13 14:31:19:188 GMT+03:00 [TRACE] HttpMethodBase - enter=0D > 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=0D > 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=0D > tunnel to devwebm.xxxx.com:443 > 2005/02/13 14:31:19:219 GMT+03:00 [DEBUG] HttpMethodDirector - Closing > the connection: 2-exception=3Djava.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=0D > connection back to connection manager. > 2005/02/13 14:31:19:250 GMT+03:00 [TRACE]=0D > MultiThreadedHttpConnectionManager - enter=0D > HttpConnectionManager.releaseConnec > tion(HttpConnection) > 2005/02/13 14:31:19:250 GMT+03:00 [DEBUG]=0D > MultiThreadedHttpConnectionManager - Freeing connection,=0D > hostConfig=3DHostConfig uration[host=3Dhttps://devwebm.xxxx.com, > proxyHost=3Dhttp://proxy.yyyy.com:8080] > 2005/02/13 14:31:19:250 GMT+03:00 [TRACE]=0D > MultiThreadedHttpConnectionManager - enter=0D > HttpConnectionManager.ConnectionPoo > l.getHostPool(HostConfiguration) > 2005/02/13 14:31:19:250 GMT+03:00 [DEBUG] IdleConnectionHandler -=0D > Adding connection at: 1108294279250 > 2005/02/13 14:31:19:250 GMT+03:00 [DEBUG]=0D > MultiThreadedHttpConnectionManager - Notifying no-one, there are no=0D > waiting th reads > 2005-02-13 14:31:19 GMT+03:00 [ISU.0000.9999C]=0D > [xxxx]-[testConnection.HTTPUTILS]-[ERROR]=3D>=0D > --------------------------- > ----- > 2005-02-13 14:31:19 GMT+03:00 [ISU.0000.9999C]=0D > [xxxx]-[testConnection.HTTPUTILS]-[ERROR]=3D>=0D > HTTPJakartaClient.postHttpD > ata(KEYACCOUNTS.EBILL.xxxx.SSL.test): > =3D=3D> 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=0D > 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=0D > 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=0D > 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]=0D > [xxxx]-[testConnection.HTTPUTILS]-[ERROR]=3D>=0D > --------------------------- > ----- >=0D > -----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 >=0D > Any parameter can be applied either at the method, host, or client=0D > level >=0D > See api.html> >=0D > The trouble is that the CONNECT method seems to be taking its=0D > parameters from the client, ignoring those set at the method and host=0D > level >=0D > Feel free to file a bug report and I'll provide a fix shortly >=0D > Oleg >=0D > On Sat, 2005-02-12 at 16:32 +0300, Riad Souissi wrote: > > You said setVersion() should work on Proxy comm; where do you apply=0D > > 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=0D > > for >=0D > > proxy comm from the tunnled comm (it may be the case already, but I=0D > > do >=0D > > not see how). > > > > Here are the logs: > > > > >=0D > > -----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=0D > > > 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=0D > > the >=0D > > wire/context log of the HTTP session. See=0D > > for=0D > > details. I'll take a look at the log > > > > > > > > =3D> 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=0D > > > in >=0D > > > the HTTP header with the Proxy. > > > This seems to cause the Proxy to reject the connection from the=0D > > > HTTPClient. > > > > It should not. The Content-Length (or Transfer-Encoding) is required > > for entity enclosing methods. HTTP CONNECT is not supposed to=0D > > 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 > > > > > =3D> Do you know how I can force the client to specify this header=0D > > > with the proxy ? > > > > > > Thanks in advance, > > > riad > > > > > >=0D >=0D > DiscalimerThe information in this email and in any files transmitted=0D > 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=0D > 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,=0D > 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=0D > sender, and do not necessarily reflect those of STC. >=0D > --------------------------------------------------------------------- > To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org > For additional commands, e-mail:=0D > 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