SOAP: добавить пользователя и пароль к soap: URL адреса не работает? - PullRequest
0 голосов
/ 02 ноября 2018

Когда я скручиваю этот URL , он работает:

curl http://OLM:OLM794%24@X.XXX.XXX.XXX:10080

Но, когда я звоню по моему адресу, как это, это не работает:

<soap:address location="http://OLM:OLM794%24@X.XXX.XXX.XXX:10080/"/>

Это показывает мне: (SoapFault): Authorization Required

У вас есть представление, почему?

Обновление:

sw.xml

....
<wsdl:service name="Toto">
        <wsdl:port name="GazListeImpayesHttpSoap11Endpoint" binding="tns:TotoSoap11Binding">
            <soap:address location="http://OLM:OLM794%24@X.XXX.XXX.XXX:10080/web/services/Toto.TotoHttpSoap11Endpoint/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Тогда в моем файле, который вызывает это мыло:

file.php

<?php
$soap = new SoapClient('http://domaine.com/sw.xml');

var_dump($soap->__getFunctions()); //OK
var_dump($soap->__getTypes()); //OK

$result = $soap->__soapCall("method", array("parameters"=>array("args0"=>array("NUM"=> "123"))));
var_dump($result);
?>

результат:

(SoapFault): Authorization Required

1 Ответ

0 голосов
/ 02 ноября 2018

Я нашел решение, пользователь и пароль должны быть добавлены в методе SoapClient, а не напрямую в wsdl soap:address location

как это:

$user = "your user here";
$password = "your password here";
$url = "path of wsdl location here";
$credentials = array(
    'login' => $user,
    'password' => $password,
);

$soap = new SoapClient($url, $credentials);
...