Refbase update_2021-01-28_15_58
This commit is contained in:
120
includes/classes/org/active-link/xml/XMLRPCClient.php
Normal file
120
includes/classes/org/active-link/xml/XMLRPCClient.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
This file is part of ActiveLink PHP XML Package (www.active-link.com).
|
||||
Copyright (c) 2002-2004 by Zurab Davitiani
|
||||
|
||||
You can contact the author of this software via E-mail at
|
||||
hattrick@mailcan.com
|
||||
|
||||
ActiveLink PHP XML Package is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
ActiveLink PHP XML Package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with ActiveLink PHP XML Package; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
* requires HTTPClient, XML and XMLDocument classes
|
||||
*/
|
||||
|
||||
import("org.active-link.net.HTTPClient");
|
||||
import("org.active-link.xml.XML");
|
||||
import("org.active-link.xml.XMLDocument");
|
||||
|
||||
/**
|
||||
* XMLRPCClient class provides XML-RPC client capabilities
|
||||
* @class XMLRPCClient
|
||||
* @package org.active-link.xml
|
||||
* @author Zurab Davitiani
|
||||
* @version 0.4.0
|
||||
* @extends HTTPClient
|
||||
* @requires HTTPClient, XML, XMLDocument
|
||||
* @see HTTPClient
|
||||
*/
|
||||
|
||||
class XMLRPCClient extends HTTPClient {
|
||||
|
||||
var $xml;
|
||||
var $xmlDoc;
|
||||
var $params;
|
||||
|
||||
/**
|
||||
* XMLRPCClient client class constructor accepts host (required) and port (optional, default 80) arguments
|
||||
* @method XMLRPCClient
|
||||
* @param string host
|
||||
* @param optional int port
|
||||
*/
|
||||
function XMLRPCClient($host, $port = 80) {
|
||||
$this->HTTPClient($host, $port);
|
||||
$this->setRequestMethod("POST");
|
||||
$this->addRequestHeaderRaw("Content-type: text/xml");
|
||||
$this->xml = new XML("methodCall");
|
||||
$this->xml->setTagContent("", "methodCall/methodName");
|
||||
$this->xml->setTagContent("", "methodCall/params");
|
||||
$this->xmlDoc = new XMLDocument();
|
||||
$this->xmlDoc->setXML($this->xml);
|
||||
$paramsBranchArray = &$this->xml->getBranches("methodCall", "params");
|
||||
$this->params = &$paramsBranchArray[0];
|
||||
// this call not necessary if we can somehow update body before HTTPClient->sendRequest
|
||||
$this->setRequestBody($this->xmlDoc->getXMLString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a parameter to a method call in XMLRPC request
|
||||
* @method addParam
|
||||
* @param string paramType
|
||||
* @param mixed paramValue
|
||||
* @returns none
|
||||
*/
|
||||
function addParam($paramType, $paramValue) {
|
||||
$newParam = new XMLBranch("param");
|
||||
$newParam->setTagContent($paramValue, "param/value/$paramType");
|
||||
$this->params->addXMLBranch($newParam);
|
||||
// this call not necessary if we can somehow update body before HTTPClient->sendRequest
|
||||
$this->setRequestBody($this->xmlDoc->getXMLString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets method name in XMLRPC request
|
||||
* @method setMethodName
|
||||
* @param string methodName
|
||||
* @returns none
|
||||
*/
|
||||
function setMethodName ($methodName) {
|
||||
$this->xml->setTagContent($methodName, "methodCall/methodName");
|
||||
// this call not necessary if we can somehow update body before HTTPClient->sendRequest
|
||||
$this->setRequestBody($this->xmlDoc->getXMLString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets XMLRPC request by supplying an XMLDocument object
|
||||
* @method setRequestXML
|
||||
* @param object XMLDocument
|
||||
* @returns true if successful, false otherwise
|
||||
*/
|
||||
function setRequestXML(&$XMLDocument) {
|
||||
if(is_object($XMLDocument) && strtolower(get_class($XMLDocument)) == "xmldocument") {
|
||||
$this->xmlDoc = &$XMLDocument;
|
||||
$this->xml = &$this->xmlDoc->getXML();
|
||||
$this->params = &$this->xml->getBranches("methodCall", "params");
|
||||
// this call not necessary if we can somehow update body before HTTPClient->sendRequest
|
||||
$this->setRequestBody(htmlspecialchars($this->xmlDoc->getXMLString()));
|
||||
$success = true;
|
||||
}
|
||||
else
|
||||
$success = false;
|
||||
return $success;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user