ServerXMLHTTP setProxy: режим 1 вибирає пряме з'єднання
Використовуйте правильну константу режиму проксі ServerXMLHTTP і тримайте список обходу окремо від альтернативних кінцевих точок проксі.
Цей виклик VBA виглядає так, ніби вибирає проксі, збережений у proxyServer:
http.setProxy 1, proxyServer, bypassList
Для MSXML ServerXMLHTTP перший аргумент вибирає режим проксі. Документовані значення: 0 для конфігурації за замовчуванням, 1 для прямого з'єднання і 2 для явно заданого проксі. Передача адреси після 1 не перетворює прямий режим на режим ручного проксі.
Мінімальний приклад ручного проксі:
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
Кінцева точка в прикладі — заповнювач. Для перевірки публічного проксі замініть її HTTP-адресою зі списку HTTP-проксі. Третій аргумент — список обходу; тут <local> використовує документований виняток для локального імені. Це не другий проксі, який пробують, якщо перший не спрацював. Тому зазначення там IP і порту іншого проксі виражає неправильний тип налаштування.
Використовуйте іменовані константи там, де ваші посилання VBA їх надають, або визначайте потрібну константу локально під час пізнього зв'язування, щоб режим було видно під час перегляду.
Також зважайте на тип об'єкта. ServerXMLHTTP, орієнтований на браузер XMLHTTP і WinHttpRequest — різні інтерфейси COM. Робочий приклад для одного не доводить джерело конфігурації іншого. Після того як правильний об'єкт вибере режим ручного проксі, дослідіть будь-яку залишкову помилку з'єднання, автентифікації або TLS на цьому маршруті.