원격 브라우저에는 두 개의 네트워크 경로가 있습니다. Java가 브라우저 서비스로 여는 제어 연결과, 브라우저가 웹사이트로 보내는 요청입니다. 후자는 직접 만드는 컨텍스트에 설정합니다.

CDP 엔드포인트를 노출하고 새 컨텍스트를 허용하는 Chromium 서비스라면:

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은 브라우저 서비스가 제공하는 현재 엔드포인트입니다. 그 인증 토큰과 프로토콜은 포워드 프록시 계정과 무관합니다.

CDP 연결은 Chromium에서만 동작합니다. Playwright 프로토콜 엔드포인트는 대신 connect을 사용합니다. 서비스의 프로토콜을 확인하지 않고 URL 접미사를 바꾸는 것은 신뢰할 수 있는 변환이 아닙니다.

프록시는 원격 브라우저의 호스트에서 도달할 수 있어야 합니다. Java 머신의 루프백 리스너가 그곳에서 자동으로 사용 가능한 것은 아닙니다. 새 컨텍스트 설정은 이미 있는 기본 컨텍스트나 Java의 WebSocket 연결을 다시 구성하지도 않습니다.

관련 글