Я пытался получить данные с сервера через SOAP, используя как файлы сертификата (.crt и .key), так и аутентификацию, он продолжает выдавать ошибку «Не удалось подключиться к хосту».
Вот код я использовал
$cert = '/path/to/my/cert.crt'; //.key file is in the same directory
$url = "https://url.com/non-wsdl-path";
try {
$soapClient = new \SoapClient(null, array(
"trace" => 1,
"exception" => 1,
"local_cert" => $cert,
"location" => $url,
"uri" => $url,
"login" => "user",
"password" => "pass",
));
$params = array(
'var1' => 00100,
'var2' => 13,
'var3' => 0375,
'var4' => 1234,
'var5' => 13
);
$soapResponse = $soapClient->__soapCall("functionName", $params);
}
catch (Exception $e) {
var_dump($e);
}
Вот XML, который я использовал в почтальоне, который прекрасно работает (.crt уже в настройке почтальона)
POST для https://url.com/non-wsdl-path
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:esv="http://other-url.com">
<soap:Header/>
<soap:Body>
<esv:functionName>
<functionNameInput>
<dataInput>
<var1>00100</var1>
<var2>13</var2>
<var3>0375</var3>
<var4>1234</var4>
<var5>13</var5>
</dataInput>
<authenticationInput>
<userId>user</userId>
<password>pass</password>
</authenticationInput>
</functionNameInput>
</esv:functionName>
</soap:Body>