ຕັ້ງ ProxyServer ຂອງ chromedp ເທິງ ExecAllocator
ສ້າງ context ຂອງບຣາວເຊີຈາກ ExecAllocator ທີ່ມີ ProxyServer ເພື່ອໃຫ້ຂະບວນການ Chromium ທີ່ຕັ້ງໃຈໄດ້ຮັບທຸງ proxy ຂອງມັນ.
chromedp.ProxyServer ແມ່ນຕົວເລືອກໃນການເປີດບຣາວເຊີ. ໃຫ້ນຳໃຊ້ມັນກັບ allocator ທີ່ສ້າງຂະບວນການ 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/"),
)
ໂຄດນີ້ຢູ່ໃນຟັງຊັນທີ່ມີຢູ່ແລ້ວຂອງແອັບພລິເຄຊັນ ພ້ອມກັບການຈັດການຂໍ້ຜິດພາດປົກກະຕິສຳລັບ err. NewContext ສືບທອດ allocator ຈາກ allocCtx. context ທີ່ສ້າງຈາກ parent ອື່ນອາດສ້າງບຣາວເຊີອື່ນໂດຍບໍ່ມີຕົວເລືອກນັ້ນ.
URL proxy ກຳນົດຕົວຮັບຟັງ HTTP; ຜູ້ສະໝັກສາທາລະນະມີຢູ່ໃນ ລາຍຊື່ HTTP proxy; ໜ້າຍັງເປັນປາຍທາງ HTTPS. ProxyServer ແມ່ນໄປຫາທຸງ --proxy-server ຂອງ Chromium ບໍ່ແມ່ນການຕັ້ງຄ່າ proxy net/http ຂອງ Go.
Chromium ບໍ່ຮັບຊື່ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານທີ່ຝັງຢູ່ໃນ URL proxy ແບບຕັ້ງດ້ວຍມື. ປາຍທາງທີ່ຕ້ອງມີການພິສູດຕົວຕ້ອງການການພິສູດຕົວຂອງບຣາວເຊີທີ່ຮອງຮັບ ຫຼື ການຈັດສັນຕົວກາງ; ການເພີ່ມ user:password ໃສ່ທຸງນີ້ບໍ່ເທົ່າກັບການພິສູດຕົວ URL ໃນ HTTP client. ການໄຫຼຂອງເຫດການພິສູດຕົວ CDP ຂອງ Chrome ແມ່ນທາງໜຶ່ງທີ່ຮອງຮັບສຳລັບຈັດການສິ່ງທ້າທາຍ proxy ທີ່ຕັ້ງໃຈ.
ຮັກສາ allocator ໃຫ້ຢູ່ຈົນວຽກຂອງບຣາວເຊີສຳເລັດ. ການຍົກເລີກມັນກໍເປັນສ່ວນໜຶ່ງຂອງການເຮັດຄວາມສະອາດຂະບວນການ ຂະນະທີ່ການຍົກເລີກແທັບກຳນົດຂອບເຂດຂອງ context ບຣາວເຊີທີ່ກ່ຽວຂ້ອງ.