ServerXMLHTTP setProxy: 1 režimas pasirenka tiesioginį ryšį
Naudokite teisingą ServerXMLHTTP tarpinio serverio režimo konstantą ir laikykite apėjimo sąrašą atskirai nuo alternatyvių tarpinio serverio galinių taškų.
Šis VBA kvietimas atrodo pasirenkantis tarpinį serverį, saugomą proxyServer:
http.setProxy 1, proxyServer, bypassList
MSXML ServerXMLHTTP pirmasis argumentas pasirenka tarpinio serverio režimą. Dokumentuotos reikšmės yra 0 numatytajai konfigūracijai, 1 tiesioginiam ryšiui ir 2 aiškiai nurodytam tarpiniam serveriui. Adreso perdavimas po 1 nepaverčia tiesioginio režimo rankiniu tarpinio serverio režimu.
Minimalus rankinio tarpinio serverio pavyzdys:
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
Pavyzdžio galinis taškas yra pakaitas. Norėdami patikrinti viešą tarpinį serverį, pakeiskite jį HTTP adresu iš HTTP tarpinių serverių sąrašo. Trečiasis argumentas yra apėjimo sąrašas; čia <local> naudoja dokumentuotą vietinio vardo išimtį. Tai ne antras tarpinis serveris, kurį reikia bandyti, jei pirmasis nepavyksta. Todėl kito tarpinio serverio IP ir prievado įrašymas ten išreiškia netinkamą nustatymo tipą.
Naudokite įvardytas konstantas ten, kur jūsų VBA nuorodos jas atskleidžia, arba apibrėžkite atitinkamą konstantą vietoje, kai naudojate vėlyvą susiejimą, kad režimas būtų matomas peržiūros metu.
Taip pat atkreipkite dėmesį į objekto tipą. ServerXMLHTTP, naršyklėms skirtas XMLHTTP ir WinHttpRequest yra skirtingos COM sąsajos. Vienam veikiantis pavyzdys neįrodo kito konfigūracijos šaltinio. Kai teisingas objektas pasirenka rankinį tarpinio serverio režimą, ištirkite bet kokią likusią ryšio, autentifikavimo ar TLS klaidą tame maršrute.