jsoup kan hente siden gjennom en HTTP-proxy og parse svaret i samme kall:

Document page = Jsoup.connect("https://www.example.com/")
    .proxy("proxy.example", 8080)
    .get();

Vertsnavnet og heltallsporten identifiserer proxyen. For tillatte forespørsler til offentlige sider, velg et HTTP-endepunkt fra tjenesten din eller fra HTTP-proxylisten. URL-en som sendes til connect forblir siden du vil ha. Du trenger ikke laste ned HTML-en til en streng med en separat URLConnection bare for å legge til denne ruten.

proxy(String, int) velger en HTTP-proxy for den forespørselen. Et portnummer som 1080 endrer ikke protokollen til SOCKS; proxyens endepunkt må snakke typen som konfigureres. jsoup tilbyr også en overbelastning som godtar java.net.Proxy, men støtte for en bestemt rute avhenger fortsatt av HTTP-implementasjonen som brukes.

Gi hver arbeider sin egen forespørsel

Et valg på forespørselsnivå gjør parallelt arbeid enklere enn å endre JVM-systemegenskaper rundt hver nedlasting. Hold den mutable forespørselen adskilt for hver arbeider. Moderne jsoup kan dele en sesjons innstillinger og cookielager mens den oppretter en fersk forespørsel:

Connection session = Jsoup.newSession();
Document first = session.newRequest()
    .url("https://www.example.com/one")
    .proxy("proxy-a.example", 8080)
    .get();
Document second = session.newRequest()
    .url("https://www.example.com/two")
    .proxy("proxy-b.example", 8080)
    .get();

Kallene ovenfor kjører sekvensielt for klarhetens skyld. Hvis arbeidet fordeles samtidig, opprett forespørslene uavhengig i stedet for å endre proxyen på én Connection som er i gang. En delt sesjon deler også cookies; bruk forskjellige sesjoner når nettleseridentitetene skal holdes adskilt.

Disse grensesnittene finnes i jsoup 1.21.2. Grensesnittet newRequest() uten argumenter stammer fra 1.14.1, så en eldre applikasjon bør sjekke avhengigheten sin før den tar i bruk sesjonseksemplet.

Legitimasjon er et ytterligere krav for en autentisert proxy. Et vellykket rutevalg leverer ikke en konto, og det å motta en proxy-utfordring er forskjellig fra å mislykkes med å koble til porten.

Relaterte artikler