Viewing file: Transport.php (3.73 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * This file contains the code for an abstract transport layer. * * PHP versions 4 and 5 * * LICENSE: This source file is subject to version 2.02 of the PHP license, * that is bundled with this package in the file LICENSE, and is available at * through the world-wide-web at http://www.php.net/license/2_02.txt. If you * did not receive a copy of the PHP license and are unable to obtain it * through the world-wide-web, please send a note to license@php.net so we can * mail you a copy immediately. * * @category Web Services * @package SOAP * @author Dietrich Ayala <dietrich@ganx4.com> * @author Shane Caraveo <Shane@Caraveo.com> * @author Jan Schneider <jan@horde.org> * @copyright 2003-2006 The PHP Group * @license http://www.php.net/license/2_02.txt PHP License 2.02 * @link http://pear.php.net/package/SOAP */
require_once 'SOAP/Base.php';
/** * SOAP Transport Layer * * This layer can use different protocols dependant on the endpoint url * provided. * * No knowlege of the SOAP protocol is available at this level. * No knowlege of the transport protocols is available at this level. * * @access public * @package SOAP * @author Shane Caraveo <shane@php.net> * @author Jan Schneider <jan@horde.org> */ class SOAP_Transport extends SOAP_Base { /** * Connection endpoint URL. * * @var string */ var $url = '';
/** * Array containing urlparts. * * @see parse_url() * * @var mixed */ var $urlparts = null;
/** * Incoming payload. * * @var string */ var $incoming_payload = '';
/** * Outgoing payload. * * @var string */ var $outgoing_payload = '';
/** * Request encoding. * * @var string */ var $encoding = SOAP_DEFAULT_ENCODING;
/** * Response encoding. * * We assume UTF-8 if no encoding is set. * * @var string */ var $result_encoding = 'UTF-8';
/** * Decoded attachments from the reponse. * * @var array */ var $attachments;
/** * Request User-Agent. * * @var string */ var $_userAgent = SOAP_LIBRARY_NAME;
/** * Sends and receives SOAP data. * * @access public * @abstract * * @param string Outgoing SOAP data. * @param array Options. * * @return string|SOAP_Fault */ function send($msg, $options = null) { return $this->_raiseSoapFault('SOAP_Transport::send() not implemented.'); }
function &getTransport($url, $encoding = SOAP_DEFAULT_ENCODING) { $urlparts = @parse_url($url);
if (!$urlparts['scheme']) { $fault = SOAP_Base_Object::_raiseSoapFault("Invalid transport URI: $url"); return $fault; }
if (strcasecmp($urlparts['scheme'], 'mailto') == 0) { $transport_type = 'SMTP'; } elseif (strcasecmp($urlparts['scheme'], 'https') == 0) { $transport_type = 'HTTP'; } else { /* Handle other transport types */ $transport_type = strtoupper($urlparts['scheme']); } $transport_include = 'SOAP/Transport/' . $transport_type . '.php'; $res = @include_once($transport_include); if (!$res) { $fault = SOAP_Base_Object::_raiseSoapFault("No Transport for {$urlparts['scheme']}"); return $fault; } $transport_class = "SOAP_Transport_$transport_type"; if (!class_exists($transport_class)) { $fault = SOAP_Base_Object::_raiseSoapFault("No Transport class $transport_class"); return $fault; } $t =& new $transport_class($url, $encoding);
return $t; }
}
|