summaryrefslogtreecommitdiff
path: root/lib/oauthclient.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oauthclient.php')
-rw-r--r--lib/oauthclient.php65
1 files changed, 34 insertions, 31 deletions
diff --git a/lib/oauthclient.php b/lib/oauthclient.php
index 1a86e2460..f1827726e 100644
--- a/lib/oauthclient.php
+++ b/lib/oauthclient.php
@@ -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,
- ));
-
- // 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(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;
}
}