Setel ProxyServer chromedp pada ExecAllocator
Buat konteks browser dari ExecAllocator yang membawa ProxyServer agar proses Chromium yang dimaksud menerima flag proxy-nya.
chromedp.ProxyServer adalah opsi peluncuran browser. Terapkan pada allocator yang membuat proses Chromium:
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/"),
)
Kode ini berada di fungsi aplikasi yang sudah ada, dengan penanganan galat biasa untuk err. NewContext mewarisi allocator dari allocCtx. Konteks yang dibuat dari induk lain dapat membuat browser berbeda tanpa opsi itu.
URL proxy menandai pendengar HTTP; kandidat publik tersedia di daftar proxy HTTP; halaman tetap menjadi tujuan HTTPS. ProxyServer dipetakan ke flag --proxy-server Chromium, bukan ke konfigurasi proxy net/http Go.
Chromium tidak menerima nama pengguna dan kata sandi yang disematkan dalam URL proxy manual. Endpoint yang diautentikasi memerlukan autentikasi browser yang didukung atau pengaturan perantara; menambahkan user:password ke flag ini tidak setara dengan autentikasi URL klien HTTP. Alur peristiwa autentikasi CDP Chrome adalah salah satu jalur yang didukung untuk menangani tantangan proxy yang dimaksud.
Pertahankan allocator tetap hidup sampai pekerjaan browser selesai. Pembatalannya juga bagian dari pembersihan proses, sedangkan pembatalan tab membatasi konteks browser terkait.