Ez a VBA hívás úgy tűnik, mintha a proxyServer változóban tárolt proxyt választaná:

http.setProxy 1, proxyServer, bypassList

Az MSXML ServerXMLHTTP esetében az első argumentum választja ki a proxy módot. A dokumentált értékek: 0 az alapértelmezett konfigurációhoz, 1 a közvetlen kapcsolathoz és 2 a kifejezetten megadott proxyhoz. Ha az 1 után címet adunk át, az nem alakítja a közvetlen módot kézi proxy móddá.

A kézi proxy minimális példája:

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

A példa végpontja helyőrző. Nyilvános proxy ellenőrzéséhez cserélje ki egy HTTP-címre a HTTP proxy listáról. A harmadik argumentum egy megkerülési lista; itt a <local> a dokumentált helyi név kivételt használja. Ez nem egy második proxy, amelyet az első hibája esetén próbálna ki. Egy másik proxy IP-jének és portjának odaírása ezért rossz típusú beállítást fejez ki.

Használjon nevesített konstansokat ott, ahol a VBA-hivatkozásai ezeket elérhetővé teszik, vagy a késői kötés használatakor definiálja a vonatkozó konstanst helyben, hogy a mód az átnézés során látható legyen.

Tartsa szem előtt az objektum típusát is. A ServerXMLHTTP, a böngészőhöz szánt XMLHTTP és a WinHttpRequest különböző COM-interfészek. Egy működő példa az egyikhez nem bizonyítja a másik konfigurációs forrását. Miután a helyes objektum kiválasztja a kézi proxy módot, vizsgálja meg az esetleges fennmaradó kapcsolódási, hitelesítési vagy TLS-hibát azon az útvonalon.

Kapcsolódó cikkek