ServerXMLHTTP setProxy: η λειτουργία 1 επιλέγει απευθείας σύνδεση
Χρησιμοποιήστε τη σωστή σταθερά λειτουργίας διαμεσολαβητή του ServerXMLHTTP και κρατήστε τη λίστα παράκαμψης χωριστά από εναλλακτικά τελικά σημεία διαμεσολαβητή.
Αυτή η κλήση VBA φαίνεται να επιλέγει τον διαμεσολαβητή που είναι αποθηκευμένος στο proxyServer:
http.setProxy 1, proxyServer, bypassList
Για το MSXML ServerXMLHTTP, το πρώτο όρισμα επιλέγει τη λειτουργία διαμεσολαβητή. Οι τεκμηριωμένες τιμές είναι 0 για την προεπιλεγμένη ρύθμιση, 1 για απευθείας σύνδεση και 2 για ρητά παρεχόμενο διαμεσολαβητή. Η μετάδοση διεύθυνσης μετά το 1 δεν μετατρέπει την απευθείας λειτουργία σε λειτουργία χειροκίνητου διαμεσολαβητή.
Ένα ελάχιστο παράδειγμα χειροκίνητου διαμεσολαβητή είναι:
Dim http As Object
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
http.setProxy 2, "proxy.example:8080", "<local>"
http.Open "GET", "https://example.com/", False
http.send
Το τελικό σημείο του παραδείγματος είναι θέση κράτησης. Για έλεγχο δημόσιου διαμεσολαβητή, αντικαταστήστε το με διεύθυνση HTTP από τη λίστα διαμεσολαβητών HTTP. Το τρίτο όρισμα είναι λίστα παράκαμψης· εδώ το <local> χρησιμοποιεί την τεκμηριωμένη εξαίρεση τοπικού ονόματος. Δεν είναι δεύτερος διαμεσολαβητής για δοκιμή αν αποτύχει ο πρώτος. Επομένως, η τοποθέτηση εκεί IP και θύρας άλλου διαμεσολαβητή εκφράζει λάθος είδος ρύθμισης.
Χρησιμοποιήστε ονομασμένες σταθερές όπου οι αναφορές VBA σας τις εκθέτουν, ή ορίστε την σχετική σταθερά τοπικά όταν χρησιμοποιείτε καθυστερημένη σύνδεση, ώστε η λειτουργία να είναι ορατή κατά την ανασκόπηση.
Έχετε επίσης υπόψη τον τύπο του αντικειμένου. Το ServerXMLHTTP, το προσανατολισμένο στο πρόγραμμα περιήγησης XMLHTTP και το WinHttpRequest είναι διαφορετικές διεπαφές COM. Ένα παράδειγμα που λειτουργεί για το ένα δεν αποδεικνύει την πηγή ρύθμισης του άλλου. Μόλις το σωστό αντικείμενο επιλέξει λειτουργία χειροκίνητου διαμεσολαβητή, διερευνήστε οποιοδήποτε υπόλοιπο σφάλμα σύνδεσης, ταυτοποίησης ή TLS σε αυτή τη διαδρομή.