ServerXMLHTTP setProxy: tilstand 1 vælger en direkte forbindelse
Brug den korrekte proxy-tilstandskonstant til ServerXMLHTTP, og hold bypass-listen adskilt fra alternative proxy-endepunkter.
Dette VBA-kald ser ud til at vælge den proxy, der er gemt i proxyServer:
http.setProxy 1, proxyServer, bypassList
For MSXML ServerXMLHTTP vælger det første argument proxy-tilstanden. De dokumenterede værdier er 0 for standardkonfigurationen, 1 for en direkte forbindelse og 2 for en eksplicit angivet proxy. At sende en adresse efter 1 gør ikke direkte tilstand til manuel proxy-tilstand.
Et minimalt eksempel på manuel proxy er:
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
Eksemplets endepunkt er en pladsholder. Til en kontrol med offentlig proxy skal du erstatte det med en HTTP-adresse fra HTTP-proxy-listen. Det tredje argument er en bypass-liste; her bruger <local> den dokumenterede undtagelse for lokale navne. Det er ikke en anden proxy, der skal prøves, hvis den første fejler. At sætte en anden proxys IP og port der udtrykker derfor den forkerte slags indstilling.
Brug navngivne konstanter, hvor dine VBA-referencer eksponerer dem, eller definer den relevante konstant lokalt, når du bruger sen binding, så tilstanden er synlig under gennemgangen.
Hav også objekttypen i tankerne. ServerXMLHTTP, browserorienteret XMLHTTP og WinHttpRequest er forskellige COM-grænseflader. Et fungerende eksempel for én fastslår ikke konfigurationskilden for en anden. Når det korrekte objekt vælger manuel proxy-tilstand, skal du undersøge enhver resterende forbindelses-, godkendelses- eller TLS-fejl på den rute.