Thanks Oleg your replies are very useful. The axis2 issue is known but nobody is addressing it, I might be able to supply a patch for that. Regarding point 5. I now use a ResponseHandler passed to httpClient.execute() method. According to docs this will ensure the underlying connection is released no matter the outcome correct? I also experienced some issues with CoreProtocolPNames.USE_EXPECT_CONTINUE that is enabled by default. My usecase is the following, i'm accessing a .NET webservice protected by NTLMv2 authentication. When both Transfer-Encoding: chunked and Expect: 100-Continue headers are present in the HttpClient answer the NTLM challenge, the server resets the connection. If I disable chunk mode I still get a HTTP 400 Bad Request (Invalid Verb) error from the server.
Disabling USE_EXPECT_CONTINUE worked around the problem successfully. Can you please explain why this option is enabled by default? From what I understand that is used to improve performance? Thanks, -Guillaume ________________________________ From: Oleg Kalnichevski [mailto:[email protected]] Sent: Fri 4/17/2009 8:01 PM To: HttpClient User Discussion Subject: Re: Porting Axis2 using commons-httpclient 3.1 to httpclient 4.0 On Fri, 2009-04-17 at 17:17 -0400, Jeudy, Guillaume wrote: > Hi, Hi New API is partially documented in this tutorial: http://wiki.apache.org/HttpComponents/HttpClientTutorial > > I'm attempting to port axis2 using commons-httpclient 3.1 to httpclient 4.0 > locally. I have a few questions because in some instances I could not find > corresponding functionality in 4.0 version. > > 1) Is httpMethodBase.setDoAuthentication() still required in 4.0 ? > No it is not. There is a parameter to disable authentication if not desired. > My understanding is that such a switch is no longer required, httpclient 4.0 > requests will perform authentication by default if credentials are set and > authschemes are properly configured on the HttpClient object. > > 2) What about the Protocol interface implementations? The HostConfiguration > class also disappeared. I now use HttpHost to get equivalent functionality in > 4.0. I cannot get equivalent functionality for missing Protocol class in > defunct HostConfiguration. Can somebody point in the right direction here? > See Scheme > 3) Preemptive authentication feature. Before it was easy as: > > httpClient.getParams().setAuthenticationPreemptive(true); what is easiest > way to migrate to 4.0 way of doing it ? See examples. There is a couple about preemptive authentication http://hc.apache.org/httpcomponents-client/examples.html > > 4) Reorder auth scheme priority. before you could do things such as: > > List schemes = authenticator.getAuthSchemes(); > authPrefs.add(AuthPolicy.BASIC); > authPrefs.add(AuthPolicy.NTLM); > > httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, > authPrefs); > > I did not find such customizability in 4.0, any hints? Are all registered > auth scheme applied in indefinite order in 4.0? > Subclass DefaultTargetAuthenticationHandler and override #getAuthPreferences() method > 5) connection management before you had to do: > > try { > httpClient.executeMethod(config, method); > } finally { > method.releaseConnection(); > } > See tutorial and examples. There is enough material about connection management already. I'll be adding more in the coming days / months. > to ensure the connection bound to the HttpMethodBase object is released. In > 4.0 version, are connections always released by default whenever > httpClient.executeX() is called no matter the outcome? If not please give > more insight on how this works in 4.0. > However, before you seriously consider migrating Axis2 to HttpClient 4.0 you should get Axis folks to take a look at this issue: https://issues.apache.org/jira/browse/AXIS2-3933 I raised that issue almost a year ago. Still no reaction. I have pretty much given up on Axis2. Cheers Oleg > Thank you! > -Guillaume > > > > ____________________________________________________________________________________________________ > This electronic mail (including any attachments) may contain information that > is privileged, confidential, and/or otherwise protected from disclosure to > anyone other than its intended recipient(s). Any dissemination or use of this > electronic email or its contents (including any attachments) by persons other > than the intended recipient(s) is strictly prohibited. If you have received > this message in error, please notify us immediately by reply email so that we > may correct our internal records. Please then delete the original message > (including any attachments) in its entirety. Thank you. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] ____________________________________________________________________________________________________ This electronic mail (including any attachments) may contain information that is privileged, confidential, and/or otherwise protected from disclosure to anyone other than its intended recipient(s). Any dissemination or use of this electronic email or its contents (including any attachments) by persons other than the intended recipient(s) is strictly prohibited. If you have received this message in error, please notify us immediately by reply email so that we may correct our internal records. Please then delete the original message (including any attachments) in its entirety. Thank you.
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
