Thanks, Oleg. Just to check, why would it not work for me to override ManagedClientConnection.tunnelTarget ( http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/conn/ManagedClientConnection.html#tunnelTarget(boolean, org.apache.http.params.HttpParams) in 4.2.x? The documentation seems to indicate that the route (including immediate proxies) has been completed at this point.
Thanks, Greg On Tue, May 20, 2014 at 8:13 AM, Oleg Kalnichevski <[email protected]> wrote: > On Mon, 2014-05-19 at 14:47 -0700, Gregory Chanan wrote: > > Hi Oleg, > > > > Thanks, that makes sense. Any equivalent for httpclient 4.2.5? I use > both > > 4.2.5 and 4.3.3. > > > > Unfortunately 4.2 APIs do not provide an equivalent method. > > Oleg > > > Thanks, > > Greg > > > > > > On Wed, May 14, 2014 at 4:10 AM, Oleg Kalnichevski <[email protected]> > wrote: > > > > > On Tue, 2014-05-13 at 17:05 -0700, Gregory Chanan wrote: > > > > I'm using httpclient (4.3.3) in my application with SPNEGO/Kerberos > Auth > > > > and everything works well when a GET is the first request to a remote > > > > host. This is consistent with > > > > > > > > http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#spnegowhich > > > > only discusses SPNEGO with GET. > > > > > > > > I run into problems in my application if POST is the first request; > there > > > > are a couple of different given the SPNEGO negotiation. What I've > done > > > is > > > > address this at the application level: if a POST is being requested, > I > > > > first generate a GET in order to trigger the SPNEGO negotiation, then > > > send > > > > the POST. > > > > > > > > There are a couple of downsides to this approach, though: > > > > 1) It's inefficient because I send the GET each time a POST request > is > > > > made, not once per connection. > > > > 2) I have to change the application code everywhere httpclient > requests > > > are > > > > made > > > > > > > > Anyone have a suggestion for how to address this? I was thinking of > > > > implementing by own HttpClientConnectionManager that overrides > "connect" > > > > and sends the GET after the connection is established. That way I > > > address > > > > 1) because I only send the GET once per connection and 2) I can get > rid > > > of > > > > the changes in my application code and just use normal HttpClients. > > > > > > > > Thoughts? > > > > > > Gregory, > > > > > > It is a reasonable approach. However, you should overrride > > > #routeComplete method instead of #connect. This will enable you to > > > interact with the connection immediately after its route has been fully > > > established. Otherwise, your connection manager would not work > correctly > > > with tunneled connections (for instance, https requests via a proxy). > > > > > > Hope this helps > > > > > > Oleg > > > > > > > > > --------------------------------------------------------------------- > > > 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] > >
