chromedp የProxyServer ን በExecAllocator ላይ ያዘጋጁ
የአሳሽ context ከProxyServer ከያዘው ExecAllocator ይፍጠሩ፣ የታሰበው የChromium ሂደት የproxy ባንዲራውን እንዲያገኝ።
chromedp.ProxyServer የአሳሽ ማስጀመሪያ አማራጭ ነው። የChromium ሂደትን በሚፈጥረው allocator ላይ ተግብረውት፦
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/"),
)
ኮዱ በመተግበሪያው ውስጥ ባለው ነባር ተግባር ውስጥ መሆን አለበት፣ ለerr የተለመደ የስህተት አያያዝ ጋር። NewContext የallocator ከallocCtx ይወርሳል። ከሌላ ወላጅ የተፈጠረ context ያለዚያ አማራጭ ሌላ አሳሽ ሊፈጥር ይችላል።
የproxy URL የHTTP አድማጭን ይለያል፤ ለሕዝብ የሚገኙ እጩዎች በHTTP proxy ዝርዝር ውስጥ አሉ፤ ገጹ ግን የHTTPS መድረሻ ሆኖ ይቆያል። ProxyServer ወደ Chromium --proxy-server ባንዲራ ይተረጉማል፣ ወደ Go net/http proxy ውቅር አይደለም።
Chromium በእጅ proxy URL ውስጥ የተካተተ የተጠቃሚ ስም እና የይለፍ ቃል አይቀበልም። የተረጋገጠ መድረሻ የሚደገፍ የአሳሽ ማረጋገጫ ወይም የመካከለኛ ዝግጅት ይፈልጋል፤ user:password ወደዚህ ባንዲራ መጨመር ከHTTP client URL ማረጋገጫ ጋር እኩል አይደለም። የChrome CDP የማረጋገጫ ክስተት ፍሰት የታሰበውን የproxy ተግዳሮት ለመያዝ ከሚደገፉ መንገዶች አንዱ ነው።
allocator ን የአሳሽ ስራ እስኪጠናቀቅ ድረስ በህይወት ያቆዩት። መሰረዙም የሂደት ማጽዳት አካል ነው፣ የtab መሰረዝ ግን ተያያዥውን የአሳሽ context ወሰን ያስተካክላል።