使用SOAPUI获取数据但无法使用PHP获取数据。为什么?

时间:2016-12-14 20:23:47

标签: php wsdl soapui

我正在尝试获取与PHP中使用SOAPUI相同的数据,因为我无法在PHP中导出。

My WSDL file。我正在调用的函数是 AUXTableAdminstration

如果我提取整个表格,PHP代码可以正常工作,但如果我在<web:xDoc> </web:xDoc>之间使用任何东西,那么我就遇到了麻烦。

在SOAPUI中输入SOAP请求

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webcominc.com/">
    <soapenv:Header/>
    <soapenv:Body>
    <web:AUXTableAdministration>
    <!--Optional:-->
    <web:userName>UserName</web:userName>
    <!--Optional:-->
    <web:password>Password</web:password>
    <!--Optional:-->
    <web:action>EXPORTROWS</web:action>
    <!--Optional:-->
    <web:tableName>ContactData</web:tableName>
    <web:xDoc>
    <Root>
    <Columns>
    <Column>ContactInternalId</Column>
    <Column>ContactName</Column>
    </Columns>
    <SearchCriteria>
    <Value>12345</Value>
    <Value>TestName</Value>
    </SearchCriteria >
    </Root>
    </web:xDoc>
    </web:AUXTableAdministration>
    </soapenv:Body>
    </soapenv:Envelope>

我正在使用上述请求

搜索行值

SOAPUI的输出

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <AUXTableAdministrationResponse xmlns="http://webcominc.com/">
    <AUXTableAdministrationResult>
    <Result>
    <Status>OK</Status>
    <Message>action 'EXPORT' for ContactData succeeded</Message>
    <Root>
    <Columns>
    <Column>CpqTableEntryId</Column>
    <Column>ContactInternalId</Column>
    <Column>ContactName</Column>
    <Column>CustomerInternalId</Column>
    <Column>Company</Column>
    </Columns>
    <Rows>
    <Row>
    <Value>1234</Value>
    <Value>1234</Value>
    <Value>Test Value</Value>
    <Value>86392</Value>
    <Value>Erin Test2</Value>
    </Row>
    </Rows>
    </Root>
    </Result>
    </AUXTableAdministrationResult>
    </AUXTableAdministrationResponse>
    </soap:Body>
    </soap:Envelope>

我正在使用WSDL的PHP​​文件:

    <?php
    header('Content-Type: application/xml; charset=utf-8');
    ini_set('soap.wsdl_cache_enable', '0');
    $username ="username";
    $password = "password";
    $action = "EXPORTROWS";
    $tablename= "ContactData";

    $xml ="<Root><Columns><Column>ContactInternalId</Column><Column>ContactName</Column></Columns><SearchCriteria><Value>86393</Value><Value>Erin Hensz</Value></SearchCriteria></Root>";

    $parameters= array('userName' => $username,'password' => $password,'action' => $action,'tableName' => $tablename,xDoc => $xml);
    $options = array('soap_version'=>SOAP_1_1,'exceptions'=>true,'trace'=>1,'cache_wsdl'=>WSDL_CACHE_NONE); 
    $client = new SoapClient('https://sandbox.webcomcpq.com/wsAPI/wssrv.asmx?WSDL' , $options);
    $data = $client->AUXTableAdministration($parameters);
    echo $result= $client->__getLastResponse();

    ?>

PHP输出

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <AUXTableAdministrationResponse xmlns="http://webcominc.com/">
    <AUXTableAdministrationResult>
    <Result xmlns="http://webcominc.com/">
    <Status>NOK</Status>
    <Message>EXPORTROWS failed</Message>
    <Error>
    <ErrorCode>100000</ErrorCode>
    <Description>
    Object reference not set to an instance of an object.
    </Description>
    </Error>
    </Result>
    </AUXTableAdministrationResult>
    </AUXTableAdministrationResponse>
    </soap:Body>
    </soap:Envelope>

0 个答案:

没有答案