[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SOAP - формирование простого xml запроса.
mac0s
Доброе время суток.
Измучился весь. Нужен пример построения простого xml запроса:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ais="http://soap-server.ru/">
<soap:Header/>
<soap:Body>
<ais:Logon>
<ais:Login>
login</ais:Login>
<ais:Password>
pass</ais:Password>
</ais:Logon>
</soap:Body>
</soap:Envelope>


Прямой запрос выполняется:

try {
$login = 'login';
$pass = '***';
$request='
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ais="http://soap-server.ru">
<soap:Header/>
<soap:Body>
<ais:Logon>
<ais:Login>'
.$login.'</ais:Login>
<ais:Password>'
.$pass.'</ais:Password>
</ais:Logon>
</soap:Body>
</soap:Envelope>'
;
$soapClient = new SoapClient(null, array('location'=>"",'uri'=>""));
$response = $soapClient->__doRequest($request, 'https://soap-server.ru/uri', 'http://soap-server.ru/Logon',SOAP_1_2);
print_r($response);
}
catch (SoapFault $exc) {
print_r($exc->getMessage());
}


но перепробовал всевозможные способы формирования xml с помощью soap библиотеки и ничего не вышло.
Валятся ошибки:
Method Not Allowed

или если обращаться к wsdl серверу, то
SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://soap-server.ru/uri?WSDL' : failed to load external entity "http://soap-server.ru/uri?WSDL"


Варианты:

$login = 'login';
$pass = '***';
try {
$connectArr = array(
'Login'=>$login,
'Password'=>$pass
);
$connectArr2 = array(
'Logon'=>array(
'Login'=>$login,
'Password'=>$pass
)
);


$connectStd = new stdClass();
$connectStd->Login=$login;
$connectStd->Password=$pass;

$connectStd2 = new stdClass();
$connectStd2->Logon = new stdClass();
$connectStd2->Logon->Login=$login;
$connectStd2->Logon->Password=$pass;

$soapParams = array(
new SoapParam($login,"Login"),
new SoapParam($pass,"Password")
);

$soapParams2 = array(
new SoapParam(array(
new SoapParam($login,"Login"),
new SoapParam($pass,"Password")
),
"Logon"),
);


// $wsdl = 'http://soap-server.ru/uri?WSDL';
// $soapClient = new SoapClient($wsdl);
// $soapClient = new SoapClient($wsdl,$connectArr);

$soapClient = new SoapClient(null, array(
'location' => "https://soap-server.ru",
'uri' => "uri",
// 'Logon'=>$connectArr
));

$response=array();
// $response['v1'] = $soapClient->__soapCall('Logon', $connectArr);
// $response['v2'] = $soapClient->__soapCall('Logon', $connectArr2);
// $response['v3'] = $soapClient->Logon($connectArr);

$response['v4'] = $soapClient->Logon($connectArr2);
print_r($response);
}
catch (SoapFault $exc) {
print_r($exc->getMessage());
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.