Comment fournir les exigences en matière de politique/extension de l'API SOAP dans le client SOAP
<p>Je dois me connecter à une API Soap... J'ai utilisé l'API Soap plusieurs fois maintenant, mais comme 99 % des API sont au repos maintenant, je ne les ai pas utilisées depuis plusieurs années</p> ;
<p>Lorsque j'appelle l'API à l'aide du client Soap, j'obtiens </p>
<pre class="brush:php;toolbar:false;">SOAP-ERROR : analyse WSDL : extension WSDL requise inconnue 'http://schemas.xmlsoap.org/ws/2004/09/policy'</ pré>
<p>Ainsi, lorsque j'ouvre l'adresse wsdl dans le navigateur (login/mot de passe protégé), je peux voir ces lignes dans la sortie XML</p>
<pre class="brush:php;toolbar:false;"><wsdl:definitions xmlns:p1="urn:haixin:all2crm" xmlns:wsp="http://schemas.xmlsoap.org/ ws/2004/09/policy" "http://schemas.xmlsoap.org/wsdl/" name="SI_USBPC_REQUEST" targetNamespace="urn:haixin:all2crm">
<wsdl:documentation/>
<wsp:UsingPolicy wsdl:required="true"/>
<wsp:Politique wsu:Id="OP_SI_USBPC_REQUEST"/></pre>
<p>Où je l'ai</p>
<pre class="brush:php;toolbar:false;"><wsp:Policy>
<wsp:PolicyReference URI="#OP_SI_USBPC_REQUEST"/>
</wsp:Politique></pre>
<p>Lorsque je recherche cette erreur, je ne trouve qu'une seule ressource sur l'ensemble d'Internet où la réponse est de désactiver l'exigence de stratégie, qui est : <code><wsp:UsingPolicy wsdl:required="false "/> </code> mais je ne possède pas l'API, donc lorsque je recherche le nom de la stratégie <code>OP_SI_USBPC_REQUEST</code> il n'y a pas de problème, je n'obtiens aucun résultat, donc je suppose ceci est défini par le propriétaire de l'API. Certains noms personnalisés</p>
<p>Ma question est donc la suivante : dois-je établir la politique et la joindre à la demande du client Soap ?
Quel est le lien entre la stratégie et les extensions, car j'obtiens une erreur d'extension manquante, mais si je désactive l'exigence de stratégie, elle disparaît </p>
<p>Y a-t-il un endroit où je peux télécharger l'extension ? Quel est le format... dois-je les ajouter à la demande du client Soap ? </p>
<p>Ou est-ce quelque chose qui devrait être installé sur le serveur ? Si j'ajoute l'extension d'une manière ou d'une autre, l'erreur disparaîtra-t-elle parce que j'ai ajouté le nom d'utilisateur/mot de passe à l'appel de l'API, ou est-ce juste la première étape et je devrais ensuite gérer les exigences de la politique ?</p>
<p>Au fait, j'utilise php pour appeler l'API, voici mon code</p>
<pre class="brush:php;toolbar:false;">$options = [
'login' => 'mlogin',
'mot de passe' => 'mon mot de passe',
];
$client = new SoapClient("http://domain:port/dir/wsdl/?p=sa/92130e1ffa97338ba2d1fc026567031d" , $options );</pre>
<p>Si je télécharge le fichier XML, désactive l'exigence d'un fichier local et utilise cette adresse de fichier dans le client Soap, puis-je utiliser ce fichier pour communiquer avec l'API ? (Je crois comprendre que le XML ne contient aucune donnée réelle, c'est juste l'interface/définition du client Soap et je ne peux pas utiliser de fichier local pour parler à l'API en ligne, ou peut-être que je me trompe ?) < ;/p>