SOAP запрос

Я пытаюсь отправить запрос на мой wsdl, и когда посмотреть функцию __getTypes()/__getFunctions() У меня есть следующий результат:

Array
(
[0] => getValuesResponseType getValues(getValues $parameters)
[1] => ecoResponse eco(eco $parameters)
)

Array
(
[0] => struct getValues{
value1 value1;
value2 value2;
}
[1] => string value1
[2] => string value2
[3] => struct eco {
string in;
}

Я не знаю, как кодировать эту часть, я немного потерян
Вот.
Это то, что я сделал, но ничего не возвращает:

<?php

$wsdl = "http://wsdl.example";
$local_cert = 'local_cert';
$cert_pass  = 'xxxxx';
$options = array();
$options['trace'] = true;
$options['exceptions'] = true;
$options['local_cert'] = $local_cert;
$options['passphrase'] = $cert_pass;
$options['cache_wsdl'] = WSDL_CACHE_NONE;
$options['soap_version'] = SOAP_1_1;$params = array(
'value1' => 'xxxx',
'value2' => 'xxxx'
);
$request = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://wsdl.example">
<soapenv:Header/>
<soapenv:Body>
<ws:getValues>
<value1>xxxx</value1>
<value2>xxx</value2>
</ws:getValues>
</soapenv:Body>
</soapenv:Envelope>';
$location = $wsdl;
$action = "http://wsdl.example";
$version = "1";

try {
$soapClient = new SoapClient($wsdl, $options);
$getFunctions = $soapClient->__getFunctions();
$getTypes = $soapClient->__getTypes();
$response = $soapClient->__doRequest($request,$location,$action,$version);

echo '<pre>';
print_r($getFunctions);
print_r($getTypes);
print_r($response);
echo '</pre>';
}
catch (Exception $e)
{
echo $e->getMessage(), '<br />', $e->getTraceAsString();
}

0

Решение

если вы хотите легко сконструировать запрос и легко обработать ответ, вы должны использовать генератор WSDL для php, такой как PackageGenerator проект, который использует собственный класс PHP SoapClient.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector