Le reti VPN di Android possono annunciare un proxy HTTP
Usate un ProxyInfo diretto con VpnService.Builder su Android API 29 o successivo e capite perché un URI PAC non funziona lì.
Android API 29 ha introdotto VpnService.Builder.setHttpProxy per collegare una raccomandazione di proxy HTTP a una rete VPN. In un servizio VPN esistente, prima di stabilire la sua interfaccia configurata:
builder.setHttpProxy(
ProxyInfo.buildDirectProxy("proxy.example", 8080));
Qui builder è il VpnService.Builder del servizio e ProxyInfo è android.net.ProxyInfo. Indicate host e porta del proxy separatamente. Questo frammento aggiunge le informazioni del proxy a un builder i cui altri parametri VPN sono già configurati.
I proxy PAC non sono supportati da questa API. Creare un ProxyInfo da un URI PAC non lo rende una configurazione proxy VPN supportata; usate un endpoint proxy HTTP diretto e raggiungibile. Per il traffico pubblico consentito, il elenco dei proxy HTTP fornisce candidati host e porta, la cui raggiungibilità va verificata secondo lo schema di routing della VPN.
L'impostazione è indicativa. Le applicazioni possono ignorarla, quindi non può garantire che ogni connessione usi il proxy. In un tunnel diviso, le applicazioni che seguono la raccomandazione possono anche tentare di inviare richieste HTTP verso destinazioni fuori dalla VPN attraverso quel proxy. Tali applicazioni non riescono a distinguere i due gruppi di rotte quando applicano le informazioni del proxy. Verificate la raggiungibilità dell'intermediario secondo quello schema di routing prima di considerare l'impostazione completa.