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:
parent
2849b93af8
commit
b31f041b5c
@ -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 {
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user