Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, adding redirect handling and convenience functions.

Caching support will be added in future work after unit tests have been added.

* extlib: add PEAR HTTP_Request2 0.4.1 alpha
* extlib: update PEAR Net_URL2 to 0.3.0 beta for HTTP_Request2 compatibility
* moved direct usage of CURL and file_get_contents to HTTPClient class, excluding external-sourced libraries

Note some plugins haven't been tested yet.
This commit is contained in:
Brion Vibber
2009-10-28 15:29:20 -04:00
parent 8e64723813
commit fa37967858
29 changed files with 4245 additions and 673 deletions

View File

@@ -41,22 +41,17 @@ abstract class ShortUrlApi
return strlen($url) >= common_config('site', 'shorturllength');
}
protected function http_post($data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->service_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if (($code < 200) || ($code >= 400)) return false;
return $response;
protected function http_post($data)
{
$request = new HTTPClient($this->service_url);
return $request->post($data);
}
protected function http_get($url) {
$encoded_url = urlencode($url);
return file_get_contents("{$this->service_url}$encoded_url");
protected function http_get($url)
{
$service = $this->service_url . urlencode($url);
$request = new HTTPClient($service);
return $request->get();
}
protected function tidy($response) {