این فراخوانی 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 را در آن مسیر بررسی کنید.

مقالات مرتبط