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
* adapted GeonamesPlugin for new HTTPResponse interface

Note some plugins haven't been fully tested yet.
This commit is contained in:
Brion Vibber
2009-10-28 15:29:20 -04:00
parent 73b9e531bf
commit 5581143bee
31 changed files with 4285 additions and 678 deletions

View File

@@ -41,22 +41,18 @@ 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 = HTTPClient::start();
$response = $request->post($this->service_url, null, $data);
return $response->getBody();
}
protected function http_get($url) {
$encoded_url = urlencode($url);
return file_get_contents("{$this->service_url}$encoded_url");
protected function http_get($url)
{
$request = HTTPClient::start();
$response = $request->get($this->service_url . urlencode($url));
return $response->getBody();
}
protected function tidy($response) {