Php 解析WSDL:canned';不必拘泥于服务

Php 解析WSDL:canned';不必拘泥于服务,php,soap,wsdl,vapix,Php,Soap,Wsdl,Vapix,目前,我正在尝试与一个基于SOAP的摄像头系统接口,以与它的ActionAPI相结合,这样我就可以控制它的灯光何时以编程方式点亮等等。但是,当我使用下面的代码时,它表示它无法绑定到服务,并且似乎无法正确地消化与API关联的WSDL文件,可以在这里找到: 我的代码是否有问题,或者这是WSDL文件本身的问题?非常感谢您的帮助!在此之前,在构造函数中实例化SoapClient对象时生成的错误如下所示: SOAP-ERROR:解析WSDL:无法绑定到服务 <?php /** * The pur

目前,我正在尝试与一个基于SOAP的摄像头系统接口,以与它的ActionAPI相结合,这样我就可以控制它的灯光何时以编程方式点亮等等。但是,当我使用下面的代码时,它表示它无法绑定到服务,并且似乎无法正确地消化与API关联的WSDL文件,可以在这里找到:

我的代码是否有问题,或者这是WSDL文件本身的问题?非常感谢您的帮助!在此之前,在构造函数中实例化SoapClient对象时生成的错误如下所示:

SOAP-ERROR:解析WSDL:无法绑定到服务

<?php
/**
 * The purpose of this class is to act as a means to interface with a Vapix camera
 * using SOAP requests so that events may be broadcast to it.
 */

$vapix = new Vapix("http://www.axis.com/vapix/ws/action1/ActionService.wsdl",
                   "<http://camera.address.edu>",
                   "<username>", "<password>");
if ($vapix)
{
    echo "Connection to VAPIX successful!\n";
}
else
{
    echo "Connection to VAPIX unsuccessful!\n";
}

/**
 * The constructor takes in a WSDL address, the actual interfacing address of the
 * server we are connecting to, a username, and a password, and establishes the
 * SOAP client we need to interface with said address.
 *
 * @param   $wsdl       The WSDL specification for the service we are interacting with.
 * @param   $address    The actual server address we are interfacing with.
 * @param   $username   The username we need to access the server.
 * @param   $password   The password we need to access the server.
 *
 * @return              New Vapix object ready to interface with SOAP service.
 */
class Vapix
{
    // the soap client variable we will be using to store our Vapix connection
    private $soapClient;

    public function __construct($wsdl, $address, $username, $password)
    {
        try
        {
            $soapClient = new SoapClient($wsdl, array("soap_version" => SOAP_1_2));
        }
        catch (SoapFault $fault)
        {
            echo "Error instantiating SOAP object!\n";
            echo $fault->getMessage() . "\n";
        }

        // prepare SOAP headers
        $sh_param = array(
            "username" => $username,
            "password" => $password
        );

        $headers = new SoapHeader($address, "UserCredentials", $sh_param);


        // prepare SOAP client
        $soapClient->__setSoapHeaders(array($headers));
    }

    /**
     * This function is a generalized function used for calling a SOAP request to
     * whatever service or server we are linked up to (in this case a VAPIX camera)
     * so that other more specialized functions can derive from it. It will take in
     * the name of the function, as well as a list of parameters.
     *
     * @param   $funcName   The name of the function we want to call.
     * @param   $parameters The parameters for the function we want to call.
     *
     * @return  $info       Returns info from the call if successful, NULL otherwise.
     */
    public function callSoapFunction($funcName, $parameters)
    {
        try 
        { 
            $info = $soapClient->__call($funcName, array($parameters)); 
        } 
        catch (SoapFault $fault) 
        {   
            print( 
                "alert('Sorry, blah returned the following ERROR: " . $fault->faultcode . "-" .
                    $fault->faultstring.". We will now take you back to our home page.'); 
                window.location = 'main.php';"
            ); 

            return NULL;
        }

        if ($error == 0) 
        {        
            return $info;
        }
    }
}
?>

至少提供的WSDL文件在
块之后的WSDL定义末尾没有
-区域。但是这个缺少的
-块是需要的,因为它包含具体的特定于服务的信息(例如,它的webservice URL/端点列在那里)。

至少提供的WSDL文件在
块之后的WSDL定义末尾没有
-区域。但是这个缺少的
-块是需要的,因为它包含具体的特定于服务的信息(例如,它的webservice URL/端点列在那里)