So stellen Sie SOAP-API-Richtlinien-/Erweiterungsanforderungen im SOAP-Client bereit
<p>Ich muss eine Verbindung zu einer Soap-API herstellen ... Ich habe die Soap-API jetzt ein paar Mal verwendet, aber da 99 % der APIs jetzt ruhen, habe ich sie seit mehreren Jahren nicht verwendet</p> ;
<p>Wenn ich die API mit dem Soap-Client aufrufe, erhalte ich </p>
<pre class="brush:php;toolbar:false;">SOAP-ERROR: WSDL wird analysiert: Unbekannte erforderliche WSDL-Erweiterung „http://schemas.xmlsoap.org/ws/2004/09/policy“</ vor>
<p>Wenn ich also die WSDL-Adresse im Browser öffne (Login/Passwort geschützt), kann ich diese Zeilen in der XML-Ausgabe sehen</p>
<pre class="brush:php;toolbar:false;"><wsdl:definitions xmlns:p1="urn:haixin:all2crm"http://schemas.xmlsoap.org/ ws/2004/09/policy" "http://schemas.xmlsoap.org/wsdl/" name="SI_USBPC_REQUEST"
<wsdl:documentation/>
<wsp:UsingPolicy wsdl:required="true"/>
<wsp:Policy wsu:Id="OP_SI_USBPC_REQUEST"/></pre>
<p>Wo ich es habe</p>
<pre class="brush:php;toolbar:false;"><wsp:Policy>
<wsp:PolicyReference URI="#OP_SI_USBPC_REQUEST"/>
</wsp:Policy></pre>
<p>Wenn ich nach diesem Fehler suche, kann ich im gesamten Internet nur eine Ressource finden, deren Antwort darin besteht, die Richtlinienanforderung zu deaktivieren: <code><wsp:UsingPolicy wsdl:required="false "/> </code> aber ich besitze die API nicht. Wenn ich also nach dem Richtliniennamen <code>OP_SI_USBPC_REQUEST</code> suche, gibt es kein Problem, ich erhalte keine Ergebnisse, also habe ich Ich vermute, dass dies vom API-Besitzer festgelegt wurde. Einige benutzerdefinierte Namen</p>
<p>Meine Frage lautet also: Soll ich die Richtlinie erstellen und sie der Soap-Kundenanfrage beifügen?
Was ist der Zusammenhang zwischen Richtlinie und Erweiterungen, wenn ich die Fehlermeldung „Erweiterung fehlt“ erhalte, diese jedoch verschwindet, wenn ich die Richtlinienanforderung deaktiviere? </p>
<p>Kann ich die Erweiterung irgendwo herunterladen? Was ist das Format...soll ich sie an die Soap-Client-Anfrage anhängen? </p>
<p>Oder sollte es auf dem Server installiert werden? Wenn ich die Erweiterung irgendwie hinzufüge, verschwindet der Fehler dann, weil ich den Benutzernamen/das Passwort an den API-Aufruf angehängt habe, oder ist dies nur der erste Schritt und ich sollte mich danach um die Richtlinienanforderung kümmern?</p>
<p>Übrigens verwende ich PHP, um die API aufzurufen, das ist mein Code</p>
<pre class="brush:php;toolbar:false;">$options = [
'login' => 'mlogin',
'password' => 'meinpasswort',
];
$client = new SoapClient("http://domain:port/dir/wsdl/?p=sa/92130e1ffa97338ba2d1fc026567031d" , $options );</pre>
<p>Wenn ich die XML-Datei herunterlade und die Anforderung für eine lokale Datei deaktiviere und diese Dateiadresse im SOAP-Client verwende, kann ich dann diese Datei verwenden, um mit der API zu kommunizieren? (Mein Verständnis ist, dass die XML-Datei keine tatsächlichen Daten enthält, sondern nur die Schnittstelle/Definition für den Soap-Client ist und ich keine lokale Datei verwenden kann, um mit der Online-API zu kommunizieren, oder irre ich mich vielleicht?) < ;/p>