Η φόρτωση απομακρυσμένου WSDL μπορεί να συμβεί μέσα στον κατασκευαστή του SoapClient. Δώστε τον μεσολαβητή πριν από αυτή την πρώτη ανάκτηση:

$client = new SoapClient('https://service.example.com/api?wsdl', [
    'proxy_host' => '203.0.113.10',
    'proxy_port' => 8080,
    'proxy_login' => getenv('PROXY_USER'),
    'proxy_password' => getenv('PROXY_PASSWORD'),
    'connection_timeout' => 5,
    'exceptions' => true,
]);

Χρησιμοποιήστε το πραγματικό WSDL, τον κεντρικό υπολογιστή/θύρα του μεσολαβητή και την προβλεπόμενη πηγή διαπιστευτηρίων. Το πεδίο κεντρικού υπολογιστή είναι διεύθυνση, με τη θύρα χωριστά.

Όταν αποτυγχάνειΑίτημα ή λειτουργία προς έλεγχο
Κατασκευή του πελάτηΑνάκτηση WSDL ή επεξεργασία εγγράφου.
Επεξεργασία εισαγόμενου εγγράφου/σχήματοςΤο πραγματικό πρόσθετο URL ανάκτησης.
Κλήση μεθόδου SOAPΤο τελικό σημείο υπηρεσίας που δηλώνεται στο WSDL, πιθανώς σε άλλον κεντρικό υπολογιστή.

Μια διεργασία που χρησιμοποιεί προσωρινά αποθηκευμένο WSDL μπορεί να παραλείψει το αίτημα που αποτυγχάνει σε άλλο μηχάνημα. Κρατήστε τη διαμόρφωση της προσωρινής μνήμης και το πραγματικό URL που απέτυχε μαζί με τη σύγκριση, αντί να αλλάξετε τον μεσολαβητή μόνο με βάση την επιτυχή κατασκευή.

proxy_login/proxy_password πιστοποιούν τον ενδιάμεσο. Το login/password προορισμού και ο έλεγχος ταυτότητας υπηρεσίας σε επίπεδο SOAP εξυπηρετούν άλλα επίπεδα. Χρησιμοποιήστε τις ειδικές επιλογές αντί να βάλετε κεφαλίδες τύπου λογαριασμού στο User-Agent· οι απαιτούμενες κεφαλίδες εφαρμογής ανήκουν σε υποστηριζόμενη διεπαφή κεφαλίδων.

Καταγράψτε τη λειτουργία, τον στόχο και το μέρος που εκδίδει πρόκληση με τα μυστικά αφαιρεμένα. Το connection_timeout περιορίζει την εγκατάσταση σύνδεσης, όχι τη συνολική διάρκεια μιας μακράς λειτουργίας SOAP.

Σχετικά άρθρα