diff options
author | Brion Vibber <brion@pobox.com> | 2009-11-02 06:56:31 -0800 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2009-11-02 07:51:29 -0800 |
commit | b22fc5b74aecd505d4e2df01258171fc65d312cf (patch) | |
tree | ea8cf7eb0d0df0a449b760778bc796d476fb4507 /plugins/TwitterBridge/twitterbasicauthclient.php | |
parent | d8e2d76ba93557f8c12f966b5d0afccf9fbdc83b (diff) |
Revert "Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, adding redirect handling and convenience functions."
Going to restructure a little more before finalizing this...
This reverts commit fa37967858c3c29000797e510e5f98aca8ab558f.
Diffstat (limited to 'plugins/TwitterBridge/twitterbasicauthclient.php')
-rw-r--r-- | plugins/TwitterBridge/twitterbasicauthclient.php | 66 |
1 files changed, 52 insertions, 14 deletions
diff --git a/plugins/TwitterBridge/twitterbasicauthclient.php b/plugins/TwitterBridge/twitterbasicauthclient.php index e4cae7373..1040d72fb 100644 --- a/plugins/TwitterBridge/twitterbasicauthclient.php +++ b/plugins/TwitterBridge/twitterbasicauthclient.php @@ -32,6 +32,26 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { } /** + * Exception wrapper for cURL errors + * + * @category Integration + * @package StatusNet + * @author Adrian Lang <mail@adrianlang.de> + * @author Brenda Wallace <shiny@cpan.org> + * @author Craig Andrews <candrews@integralblue.com> + * @author Dan Moore <dan@moore.cx> + * @author Evan Prodromou <evan@status.net> + * @author mEDI <medi@milaro.net> + * @author Sarven Capadisli <csarven@status.net> + * @author Zach Copley <zach@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + */ +class BasicAuthCurlException extends Exception +{ +} + +/** * Class for talking to the Twitter API with HTTP Basic Auth. * * @category Integration @@ -178,27 +198,45 @@ class TwitterBasicAuthClient */ function httpRequest($url, $params = null, $auth = true) { - $request = new HTTPClient($url, 'GET', array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verifypeer' => false, - )); - - // Twitter is strict about accepting invalid "Expect" headers - $request->setHeader('Expect', ''); + $options = array( + CURLOPT_RETURNTRANSFER => true, + CURLOPT_FAILONERROR => true, + CURLOPT_HEADER => false, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_USERAGENT => 'StatusNet', + CURLOPT_CONNECTTIMEOUT => 120, + CURLOPT_TIMEOUT => 120, + CURLOPT_HTTPAUTH => CURLAUTH_ANY, + CURLOPT_SSL_VERIFYPEER => false, + + // Twitter is strict about accepting invalid "Expect" headers + + CURLOPT_HTTPHEADER => array('Expect:') + ); if (isset($params)) { - $request->setMethod('POST'); - $request->addPostParameter($params); + $options[CURLOPT_POST] = true; + $options[CURLOPT_POSTFIELDS] = $params; } if ($auth) { - $request->setAuth($this->screen_name, $this->password); + $options[CURLOPT_USERPWD] = $this->screen_name . + ':' . $this->password; } - $response = $request->send(); - return $response->getBody(); + $ch = curl_init($url); + curl_setopt_array($ch, $options); + $response = curl_exec($ch); + + if ($response === false) { + $msg = curl_error($ch); + $code = curl_errno($ch); + throw new BasicAuthCurlException($msg, $code); + } + + curl_close($ch); + + return $response; } } |