Ответ 1
Okey, мне удалось найти проблему.
Вы можете избежать этого беспорядка, используя стабильную версию PHP 5.5
Недавно я узнал, что ошибка: "похоже, что у нас нет XML-документа" вызвана из-за версии PHP - PHP 5.6 в 5.5 работает как шарм.
Как исправить это в PHP 5.6
1) Удалите проверку сертификата SSL в PHP 5.6:
В версии 5.6 SSL-сертификация была включена по умолчанию, поэтому, если вы хотите ее отключить, вы должны передать поток контекста:
"stream_context" => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
)
)
)
2) Удалено ?wsdl
и добавлено .wsdl
вместо (с ?wsdl
, это не сработало для меня)
<?php
$client = new SoapClient("https://IP:443/sdk/vimService.wsdl",
array(
"trace" => 1,
"location" => "https://IP:443/sdk/",
'exceptions' => 1,
"stream_context" => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
)
)
)
)
);
$soapmsg["_this"] = array( "_" => "ServiceInstance", "type" => "ServiceInstance");
$result = $client->RetrieveServiceContent($soapmsg);
$ServiceContent = $result->returnval;
$soapmsg = NULL;
$soapmsg["_this"] = $ServiceContent->sessionManager;
$soapmsg["userName"] = "USERNAME";
$soapmsg["password"] = "PASSWORD";
$result = $client->Login($soapmsg);
$UserSession = $result->returnval;
echo "User, " . $UserSession->userName . ", successfully logged in!\n";
$soapmsg = NULL;
$soapmsg["_this"] = $ServiceContent->sessionManager;
$result = $client->Logout($soapmsg);