เบราว์เซอร์ระยะไกลมีเส้นทางเครือข่ายสองทาง คือการเชื่อมต่อควบคุมของ Java ไปยังบริการเบราว์เซอร์ และคำขอของเบราว์เซอร์ไปยังเว็บไซต์ ตั้งค่าอย่างหลังบนบริบทที่คุณสร้าง

สำหรับบริการ Chromium ที่เปิดเผย CDP endpoint และอนุญาตบริบทใหม่:

import com.microsoft.playwright.*;
import com.microsoft.playwright.options.Proxy;

try (Playwright playwright = Playwright.create()) {
    Browser browser = playwright.chromium().connectOverCDP(cdpEndpoint);
    try {
        var options = new Browser.NewContextOptions().setProxy(
            new Proxy("http://proxy.example:8080")
                .setUsername(proxyUser)
                .setPassword(proxyPassword));
        try (BrowserContext context = browser.newContext(options)) {
            context.newPage().navigate("https://www.example.org/");
        }
    } finally {
        browser.close();
    }
}

cdpEndpoint คือ endpoint ปัจจุบันที่บริการเบราว์เซอร์จัดให้ โทเค็นการยืนยันตัวตนและโปรโตคอลของ endpoint นี้ไม่ขึ้นกับบัญชีพร็อกซีส่งต่อ

การเชื่อมต่อ CDP ใช้ได้กับ Chromium เท่านั้น endpoint ที่ใช้โปรโตคอล Playwright จะใช้ connect แทน การเปลี่ยนส่วนต่อท้าย URL โดยไม่ตรวจสอบโปรโตคอลของบริการไม่ใช่การแปลงที่เชื่อถือได้

พร็อกซีต้องเข้าถึงได้จากโฮสต์ของเบราว์เซอร์ระยะไกล ตัวรับฟัง loopback บนเครื่อง Java ไม่ได้พร้อมใช้ที่นั่นโดยอัตโนมัติ การตั้งค่าของบริบทใหม่ก็ไม่ได้กำหนดค่าบริบทเริ่มต้นที่มีอยู่แล้วหรือการเชื่อมต่อ WebSocket ของ Java ใหม่ด้วย

บทความที่เกี่ยวข้อง