Kung iniuulat ng Jint na kulang ang dnsResolve o myIpAddress habang sinusuri ang PAC, hindi laging solusyon ang pag-load ng mas maraming JavaScript. Ang mga helper na iyon ng PAC ay bahagi ng kapaligirang ibinibigay ng host application.

Bago tawagin ang FindProxyForURL

Piliin ang sinusuportahang set ng helper ng PAC at mga pamilya ng address, pagkatapos ay i-install ang mga helper na iyon sa engine. Panatilihin ang kanilang mga kontrata: ang dnsResolve ay tumatanggap ng hostname, ang myIpAddress ay walang tinatanggap na argumento at nangangailangan ng patakaran sa lokal na interface, at ang shExpMatch ay gumagamit ng mga pattern na parang shell. Ang isang stub na nagbabalik ng maginhawang halaga ay maaaring tahimik na pumili ng maling ruta.

Kapag nagawa na ang pagsisimula, ang pangunahing tawag ay maaaring ganito sa Jint 4.4.0:

var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
    "FindProxyForURL",
    destinationUrl,
    destination.IdnHost
).AsString();

Ang engine ay ang naka-configure na Jint.Engine; ang pacSource ay ang nakuha na programa ng PAC. Ang destination.IdnHost ay nagbibigay ng hostname na walang port o path. Hindi ito kumukuha ng PAC at hindi nagbubukas ng koneksyon sa proxy.

Pagkatapos ng tawag

Bigyang-kahulugan ang resulta tulad ng PROXY proxy.example:8080; DIRECT bilang nakaayos na listahan ng mga kandidatong ruta at fallback. Ang pagpasa ng buong string na iyon bilang proxy URL ay nawawala ang kahulugan nito. Panatilihing hiwalay ang pagkabigo sa pagsusuri mula sa malinaw na resulta ng DIRECT.

Habang tumatakbo ito

I-configure ang mga limitasyon ng Jint sa tagal, pahayag, memorya at pagkansela, at ilantad lamang ang mga kinakailangang function ng host. Limitahan nang hiwalay ang mga callback ng DNS: hindi ginagawang mapuputol ng mga pagsusuri sa pagpapatupad ng JavaScript ang isang arbitraryong humaharang na tawag sa host. Isunud-sunod ang pag-access sa isang engine o bigyan ang sabay-sabay na trabaho ng hiwalay na pagmamay-ari na instance; hindi ligtas ang mga engine para sa sabay-sabay na paggamit.

Maaaring magkaiba ang mga implementasyon ng PAC ng browser sa mga extension ng helper at sa mga detalyeng URL na inilalantad nito, lalo na para sa HTTPS. Ang pagtugma sa isang sample na resulta ay nagpapatunay ng mas kaunti kaysa pagtugma sa gawi ng pag-ruta ng browser.

Kaugnay na mga artikulo