ServerXMLHTTP setProxy: modus 1 kiest een directe verbinding
Gebruik de juiste proxy-modusconstante van ServerXMLHTTP en houd de bypasslijst gescheiden van alternatieve proxy-eindpunten.
Deze VBA-aanroep lijkt de proxy te selecteren die is opgeslagen in proxyServer:
http.setProxy 1, proxyServer, bypassList
Voor MSXML ServerXMLHTTP kiest het eerste argument de proxymodus. De gedocumenteerde waarden zijn 0 voor de standaardconfiguratie, 1 voor een directe verbinding en 2 voor een expliciet opgegeven proxy. Een adres na 1 doorgeven maakt van de directe modus geen handmatige proxymodus.
Een minimaal voorbeeld van een handmatige proxy is:
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
Het eindpunt in het voorbeeld is een plaatsaanduiding. Voor een controle met een openbare proxy vervangt u het door een HTTP-adres uit de HTTP-proxylijst. Het derde argument is een bypasslijst; hier gebruikt <local> de gedocumenteerde uitzondering voor lokale namen. Het is geen tweede proxy om te proberen als de eerste faalt. Het IP en de poort van een andere proxy daar neerzetten drukt dus het verkeerde soort instelling uit.
Gebruik benoemde constanten waar uw VBA-verwijzingen ze aanbieden, of definieer de betreffende constante lokaal bij late binding, zodat de modus tijdens de beoordeling zichtbaar is.
Houd ook het objecttype in het oog. ServerXMLHTTP, het browsergerichte XMLHTTP en WinHttpRequest zijn verschillende COM-interfaces. Een werkend voorbeeld voor de ene bewijst niet de configuratiebron van de andere. Zodra het juiste object de handmatige proxymodus kiest, onderzoekt u elke resterende verbindings-, verificatie- of TLS-fout op die route.