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 սխալ։

Առնչվող հոդվածներ