1
0

Updated to support HTTP_Request and HTTP_Request2. Tested against

example.php with both libraries.  HTTP_Request spews out tons of
warnings if you set the error reporting to something really strict.
HTTP_Request2 is clean, but there's no Debian package for it yet...
This commit is contained in:
Bharat Mediratta 2011-12-25 17:25:35 -08:00
parent 2849b93af8
commit b31f041b5c

View File

@ -19,7 +19,6 @@
*/
include("Mail.php");
include("Mail/mime.php");
include("HTTP/Request2.php");
class Gallery3 {
var $url;
@ -64,6 +63,7 @@ class Gallery3 {
*/
public function __construct() {
$this->data = new stdClass();
$this->data->entity = new stdClass();
$this->token = null;
$this->url = null;
}
@ -169,7 +169,24 @@ class Gallery3 {
}
class Gallery3_Helper {
static $instance = null;
static function request($method, $url, $token=null, $params=array(), $file=null) {
if (!isset(self::$instance)) {
@include("HTTP/Request2.php");
if (class_exists("HTTP_Request2")) {
self::$instance = new Gallery3_Helper_HTTP_Request2();
} else {
include("HTTP/Request.php");
self::$instance = new Gallery3_Helper_HTTP_Request();
}
}
return self::$instance->request($method, $url, $token, $params, $file);
}
}
class Gallery3_Helper_HTTP_Request2 {
function request($method, $url, $token, $params, $file) {
$req = new HTTP_Request2($url);
$req->setMethod($method == "get" ? 'GET' : 'POST');
$req->setHeader("X-Gallery-Request-Method", $method);
@ -177,11 +194,10 @@ class Gallery3_Helper {
$req->setHeader("X-Gallery-Request-Key", $token);
}
foreach ($params as $key => $value) {
// $req->addPostParameter($key, is_string($value) ? $value : json_encode($value));
$req->addPostParameter($key, $value);
$req->addPostParameter($key, is_string($value) ? $value : json_encode($value));
}
if ($file) {
$req->addFile("file", $file, mime_content_type($file));
$req->addUpload("file", $file, basename($file), mime_content_type($file));
}
$response = $req->send();
$status = $response->getStatus();
@ -200,6 +216,36 @@ class Gallery3_Helper {
}
}
class Gallery3_Helper_HTTP_Request {
function request($method, $url, $token, $params, $file) {
$req = new HTTP_Request($url);
$req->setMethod($method == "get" ? HTTP_REQUEST_METHOD_GET : HTTP_REQUEST_METHOD_POST);
$req->addHeader("X-Gallery-Request-Method", $method);
if ($token) {
$req->addHeader("X-Gallery-Request-Key", $token);
}
foreach ($params as $key => $value) {
$req->addPostData($key, is_string($value) ? $value : json_encode($value));
}
if ($file) {
$req->addFile("file", $file, mime_content_type($file));
}
$req->sendRequest();
switch ($req->getResponseCode()) {
case 200:
case 201:
return json_decode($req->getResponseBody());
case 403:
throw new Gallery3_Forbidden_Exception($req->getResponseBody());
default:
throw new Gallery3_Exception($req->getResponseBody());
}
}
}
class Gallery3_Exception extends Exception {
}