ProxyServer van chromedp instellen op de ExecAllocator
Maak de browsercontext van de ExecAllocator die ProxyServer draagt, zodat het bedoelde Chromium-proces zijn proxyvlag krijgt.
chromedp.ProxyServer is een opstartoptie van de browser. Pas het toe op de allocator die het Chromium-proces maakt:
opts := append(chromedp.DefaultExecAllocatorOptions[:],
chromedp.ProxyServer("http://proxy.example:8080"),
)
allocCtx, cancelAllocator := chromedp.NewExecAllocator(
context.Background(), opts...,
)
defer cancelAllocator()
tabCtx, cancelTab := chromedp.NewContext(allocCtx)
defer cancelTab()
err := chromedp.Run(tabCtx,
chromedp.Navigate("https://www.example.com/"),
)
De code hoort in de bestaande functie van de applicatie, met de gebruikelijke foutafhandeling voor err. NewContext erft de allocator van allocCtx. Een context die van een andere parent is gemaakt, kan zonder die optie een andere browser maken.
De proxy-URL wijst een HTTP-listener aan; openbare kandidaten staan in de HTTP-proxylijst; de pagina blijft een HTTPS-bestemming. ProxyServer komt overeen met de --proxy-server-vlag van Chromium, niet met de net/http-proxyconfiguratie van Go.
Chromium accepteert geen gebruikersnaam en wachtwoord die in een handmatige proxy-URL zijn ingebed. Een geauthenticeerd eindpunt vereist ondersteunde browserauthenticatie of een tussenoplossing; user:password aan deze vlag toevoegen is niet gelijk aan URL-authenticatie in een HTTP-client. De CDP-authenticatiegebeurtenisstroom van Chrome is een ondersteunde manier om de bedoelde proxy-uitdaging af te handelen.
Houd de allocator in leven tot het browserwerk klaar is. Het annuleren ervan hoort ook bij het opruimen van het proces, terwijl het annuleren van het tabblad de bijbehorende browsercontext beperkt.