OkHttp Basic puhverserveri autentimine: peatage tagasilükatud korduskatsed
Kasutage OkHttp proxyAuthenticatorit puhverserveri väljakutsete jaoks ja lõpetage muutmata autoriseerimiskatse kordamine.
HTTP-puhverserveri jaoks, mis pakub Basic-autentimist, võib OkHttp proxyAuthenticator tagastada mandaate kandva päringu. Pärast seda, kui autoriseerimiskatse on juba tagasi lükatud, tagastage null, selle asemel et sama vastust uuesti saata:
.proxyAuthenticator { _, response ->
if (response.request.header("Proxy-Authorization") != null) {
null
} else {
response.request.newBuilder()
.header("Proxy-Authorization",
Credentials.basic(proxyUser, proxyPassword))
.build()
}
}
See visand kasutab rakenduse salajase konfiguratsiooni konto väärtusi. Valve lubab esmase katse ja peatab korduva. See rakendab Basicut, mitte iga skeemi, mida puhverserver võib teatada; uurige väljakutset enne selle vastuse valimist.
Kui lõpptulemus jääb 407, võrrelge valitud puhverserverit, teatatud skeemi ja dokumenteeritud konto identiteeti. Tagasilükatud parool, toetamata meetod ja vale kasutajanime vorm vajavad erinevaid parandusi. Hoidke need tähelepanekud ja lõplik olek redigeeritud diagnostikas.
CONNECTil on teine tagasikutse kontekst: OkHttp dokumenteerib sünteetilise ennetava puhverserveri autentimise väljakutse enne tunneli avamist. Käsitlege seda konteksti API järgi, selle asemel et eeldada, et iga tagasikutse on tavaline sihtkoha vastus.
Eraldi authenticator on sihtserveri autentimiseks. Hoidke selle mandaadid puhverserveri sisselogimisest eraldi; üldine interceptor, mis paneb puhverserveri parooli igale väljuvale päringule, võib selle saata vale ulatusega.
Ajaloolised aruanded kirjeldavad ka rakendusvigu, sealhulgas tagasilükatud puhverserveri vastuse keha käsitlemist. Enne praeguse tõrke omistamist vanale aruandele registreerige OkHttp versioon ja lõplik vahetus. Korduskatsumise otsus peaks siiski peatama muutmata mandaatide katse, millel pole kasulikku uut vastust.