Za HTTP proxy koji nudi osnovnu autentifikaciju, OkHttp proxyAuthenticator može vratiti zahtev sa akreditive. Vratite null nakon što je pokušaj autorizacije već odbijen, umesto da ponovo pošaljete isti odgovor:

.proxyAuthenticator { _, response ->
    if (response.request.header("Proxy-Authorization") != null) {
        null
    } else {
        response.request.newBuilder()
            .header("Proxy-Authorization",
                    Credentials.basic(proxyUser, proxyPassword))
            .build()
    }
}

Ova skica koristi vrednosti računa iz tajne konfiguracije aplikacije. Zaštita dozvoljava početni pokušaj i zaustavlja ponovljeni. Implementira Basic, ne svaku šemu koju proxy može najaviti; pregledajte izazov pre nego što odaberete taj odgovor.

Ako konačni rezultat ostane 407, uporedite odabrani proxy, najavljenu šemu i dokumentovani identitet računa. Odbijena lozinka, nepodržana metoda i pogrešan oblik korisničkog imena zahtevaju različite ispravke. Sačuvajte ta zapažanja i konačni status u redigovanoj dijagnostici.

CONNECT ima drugačiji kontekst povratnog poziva: OkHttp dokumentuje sintetički preventivni proxy autentifikacijski izazov pre otvaranja tunela. Obradite taj kontekst u skladu s API-jem umesto da pretpostavite da je svaki poziv običan odgovor odredišta.

Odvojeni authenticator je za autentifikaciju na odredišnom serveru. Držite njegove akreditive odvojeno od proxy prijave; generički interceptor koji stavlja proxy lozinku u svaki odlazni zahtev može je poslati u pogrešan obim.

Istorijski izveštaji takođe opisuju greške u implementaciji, uključujući rukovanje telom odbijenog proxy odgovora. Zabeležite verziju OkHttp-a i konačnu razmenu pre nego trenutni neuspeh pripišete starom izveštaju. Odluka o ponavljanju i dalje treba da zaustavi nepromenjen pokušaj akreditiva koji nema koristan novi odgovor.

Povezani članci