Re: Redirect (and cookies) support in HTTP_Request2 / HTTP_Client2?

From: Date: Sun, 01 Nov 2009 16:30:11 +0000
Subject: Re: Redirect (and cookies) support in HTTP_Request2 / HTTP_Client2?
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-52999@lists.php.net to get a copy of this message
On Sun, Nov 1, 2009 at 4:40 PM, Alexey Borzov <borz_off@cs.msu.su> wrote: > Hi, > > I'd like to gather some feedback on how to properly implement redirect and > cookies support in HTTP_Request2 and / or HTTP_Client2. > > > First, a bit of background. Redirect support was first done in HTTP_Request > by its original author, but as the class wasn't designed from the ground up > for performing multiple requests, redirect implementation was a bit of a > hack. It is currently disabled by default and its use is discouraged. > > HTTP_Client has a cleaner implementation, it uses a new instance of > HTTP_Request for doing a redirect, has proper code for resolving relative > URLs. > > HTTP_Client also has the following useful features: >  * Stores cookies between requests (persistent storage is also possible); >  * Stores default headers, default request parameters and default listeners. > These are added to all created instances of HTTP_Request; >  * Can store complete response history; >  * get() / post() / head() / put() / delete() convenience methods. > > > Now, skip to HTTP_Request2. I suspect that if one enables redirect support > in cURL adapter, it will work out of the box. It also isn't that difficult > to add naïve redirect implementation to Socket adapter, only a matter of > porting the relevant code from HTTP_Client::_performRequest(). > > > I'd also like to implement cookie storage support, though, and make us of > Public Suffix List (http://publicsuffix.org/). The big question is > implementing that *and* redirect support. Cookies can easily be extracted > from redirect responses via Observers, but can they also be injected there > (esp. with Curl)? If it's not possible, then Curl's native redirect support > can not be used and the same PHP-based implementation should be used for > both adapters. It will be easier to push that to a separate class > (HTTP_Client2?). > > > Also I'm interested whether other features of HTTP_Client are still as > relevant with HTTP_Request2 as they were with HTTP_Request. > Cookie-support (well, a cookie jar :-)) and redirects would be great. Those two are (IMHO), the most important features. Default headers, storing request history and the convenience methods are a nice to have, I wouldn't say no to them. I'm already a fan and using HTTP_Request2 in almost a dozen projects. Thanks for working on this, I'm really looking forward to HTTP_Client2. Till

« previous php.pear.dev (#52999) next »