Esta chamada de VBA parece seleccionar o proxy gardado en proxyServer:

http.setProxy 1, proxyServer, bypassList

En MSXML ServerXMLHTTP, o primeiro argumento escolle o modo de proxy. Os valores documentados son 0 para a configuración predeterminada, 1 para unha conexión directa e 2 para un proxy proporcionado explicitamente. Pasar un enderezo despois de 1 non converte o modo directo en modo de proxy manual.

Un exemplo mínimo de proxy manual é:

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

O punto final do exemplo é un marcador de posición. Para unha comprobación con proxy público, substitúao por un enderezo HTTP da lista de proxies HTTP. O terceiro argumento é unha lista de omisión; aquí <local> usa a excepción de nome local documentada. Non é un segundo proxy que probar se falla o primeiro. Por iso, poñer alí o IP e o porto doutro proxy expresa o tipo incorrecto de axuste.

Use constantes con nome onde as súas referencias de VBA as expoñan, ou defina a constante correspondente localmente cando use enlace tardío, para que o modo sexa visible durante a revisión.

Teña tamén presente o tipo de obxecto. ServerXMLHTTP, o XMLHTTP orientado ao navegador e WinHttpRequest son interfaces COM distintas. Un exemplo que funciona para un non establece a orixe de configuración do outro. Unha vez que o obxecto correcto selecciona o modo de proxy manual, investigue calquera erro restante de conexión, autenticación ou TLS nesa ruta.

Artigos relacionados