Ako Jint prijavi nedostajući dnsResolve ili myIpAddress tijekom evaluacije PAC-a, učitavanje još JavaScripta nije nužno rješenje. Ti PAC pomoćnici pripadaju okruženju koje pruža host aplikacija.

Prije poziva FindProxyForURL

Odaberite podržani skup PAC pomoćnika i obitelji adresa, zatim instalirajte te pomoćnike na engine. Očuvajte njihove ugovore: dnsResolve prima ime hosta, myIpAddress ne prima argumente i zahtijeva politiku lokalnog sučelja, a shExpMatch koristi obrasce u stilu ljuske. Stub koji vraća zgodnu vrijednost može tiho odabrati pogrešnu rutu.

Kad je ta inicijalizacija obavljena, osnovni poziv u Jint 4.4.0 može izgledati ovako:

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

engine je konfigurirani Jint.Engine; pacSource je dohvaćeni PAC program. destination.IdnHost daje ime hosta bez porta ili putanje. Ovaj poziv niti dohvaća PAC niti otvara proxy vezu.

Nakon poziva

Protumačite rezultat poput PROXY proxy.example:8080; DIRECT kao uređeni popis kandidata ruta i rezervne opcije. Prosljeđivanje cijelog tog niza kao proxy URL-a gubi njegovo značenje. Razlikujte neuspjeh evaluacije od izričitog rezultata DIRECT.

Dok se izvršava

Konfigurirajte Jintova ograničenja trajanja, naredbi, memorije i otkazivanja te izložite samo potrebne host funkcije. Ograničite DNS povratne pozive zasebno: provjere izvršavanja JavaScripta ne čine proizvoljan blokirajući host poziv prekidivim. Serijalizirajte pristup engineu ili paralelnom radu dajte zasebno posjedovane instance; enginei nisu sigurni za istovremenu upotrebu.

Implementacije PAC-a u preglednicima mogu se razlikovati po proširenjima pomoćnika i pojedinostima URL-a koje izlažu, posebno za HTTPS. Podudaranje s jednim primjernim rezultatom dokazuje manje od podudaranja s ponašanjem usmjeravanja preglednika.

Povezani članci