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 fa37967858.
This commit is contained in:
Brion Vibber
2009-11-02 06:56:31 -08:00
parent d8e2d76ba9
commit b22fc5b74a
29 changed files with 672 additions and 4244 deletions

View File

@@ -43,7 +43,7 @@ require_once 'OAuth.php';
* @link http://status.net/
*
*/
class OAuthClientException extends Exception
class OAuthClientCurlException extends Exception
{
}
@@ -97,14 +97,9 @@ class OAuthClient
function getRequestToken($url)
{
$response = $this->oAuthGet($url);
$arr = array();
parse_str($response, $arr);
if (isset($arr['oauth_token']) && isset($arr['oauth_token_secret'])) {
$token = new OAuthToken($arr['oauth_token'], @$arr['oauth_token_secret']);
return $token;
} else {
throw new OAuthClientException();
}
parse_str($response);
$token = new OAuthToken($oauth_token, $oauth_token_secret);
return $token;
}
/**
@@ -182,7 +177,7 @@ class OAuthClient
}
/**
* Make a HTTP request.
* Make a HTTP request using cURL.
*
* @param string $url Where to make the
* @param array $params post parameters
@@ -191,32 +186,40 @@ class OAuthClient
*/
function httpRequest($url, $params = null)
{
$request = new HTTPClient($url);
$request->setConfig(array(
'connect_timeout' => 120,
'timeout' => 120,
'follow_redirects' => true,
'ssl_verify_peer' => false,
));
$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
$request->setHeader('Expect', '');
// Twitter is strict about accepting invalid "Expect" headers
CURLOPT_HTTPHEADER => array('Expect:')
);
if (isset($params)) {
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setBody($params);
$options[CURLOPT_POST] = true;
$options[CURLOPT_POSTFIELDS] = $params;
}
try {
$response = $request->send();
$code = $response->getStatus();
if ($code < 200 || $code >= 400) {
throw new OAuthClientException($response->getBody(), $code);
}
return $response->getBody();
} catch (Exception $e) {
throw new OAuthClientException($e->getMessage(), $e->getCode());
$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 OAuthClientCurlException($msg, $code);
}
curl_close($ch);
return $response;
}
}