ServerXMLHTTP setProxy: tryb 1 wybiera połączenie bezpośrednie
Użyj właściwej stałej trybu proxy ServerXMLHTTP i trzymaj listę obejść oddzielnie od alternatywnych punktów końcowych proxy.
To wywołanie VBA wygląda, jakby wybierało proxy zapisane w proxyServer:
http.setProxy 1, proxyServer, bypassList
W MSXML ServerXMLHTTP pierwszy argument wybiera tryb proxy. Udokumentowane wartości to 0 dla konfiguracji domyślnej, 1 dla połączenia bezpośredniego i 2 dla jawnie podanego proxy. Przekazanie adresu po 1 nie zamienia trybu bezpośredniego w tryb ręcznego proxy.
Minimalny przykład ręcznego proxy to:
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
Punkt końcowy w przykładzie jest zastępczy. Do sprawdzenia publicznego proxy zastąp go adresem HTTP z listy proxy HTTP. Trzeci argument to lista obejść; tutaj <local> używa udokumentowanego wyjątku dla nazwy lokalnej. To nie jest drugie proxy do wypróbowania, gdy pierwsze zawiedzie. Umieszczenie tam adresu IP i portu innego proxy wyraża więc niewłaściwy rodzaj ustawienia.
Używaj nazwanych stałych tam, gdzie Twoje odwołania VBA je udostępniają, albo zdefiniuj odpowiednią stałą lokalnie przy późnym wiązaniu, aby tryb był widoczny podczas przeglądu.
Miej też na uwadze typ obiektu. ServerXMLHTTP, XMLHTTP zorientowany na przeglądarkę i WinHttpRequest to różne interfejsy COM. Działający przykład dla jednego nie dowodzi źródła konfiguracji drugiego. Gdy właściwy obiekt wybierze tryb ręcznego proxy, zbadaj każdy pozostały błąd połączenia, uwierzytelniania lub TLS na tej trasie.