Fyrir HTTP-staðgengil sem býður Basic-auðkenningu getur proxyAuthenticator OkHttp skilað beiðni með auðkennum. Skilaðu null eftir að auðkenningartilraun hefur þegar verið hafnað, í stað þess að senda sama svar aftur:

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

Þessi skissa notar reikningsgildi úr leynilegri stillingu forritsins. Vörðurinn leyfir fyrstu tilraun og stöðvar endurtekna. Hann útfærir Basic, ekki hvert kerfi sem staðgengill kann að auglýsa; skoðaðu áskorunina áður en þú velur það svar.

Ef endanlega niðurstaðan er áfram 407, berðu saman valinn staðgengil, auglýst kerfi og skjalfesta reikningsauðkenni. Hafnað lykilorð, óstudd aðferð og röng notendanafnsform þurfa mismunandi leiðréttingar. Geymdu þessar athuganir og lokastöðuna í ritstýrðum greiningum.

CONNECT hefur annað afturkallsamhengi: OkHttp skjalfestir tilbúna fyrirbyggjandi staðgengilsauðkenningar-áskorun áður en göngin eru opnuð. Meðhöndlaðu það samhengi samkvæmt API-inu í stað þess að gera ráð fyrir að hvert afturkall sé venjulegt áfangasvar.

Sérstaki authenticator er fyrir auðkenningu áfangamiðlara. Hafðu auðkenni hans aðskilin frá innskráningu staðgengils; almennur milligöngumaður sem setur staðgengilslykilorð á hverja útbeiðni getur sent það í röngu umfangi.

Sögulegar skýrslur lýsa einnig útfærsluvillum, þar á meðal meðferð hafnaðs staðgengilssvars. Skráðu OkHttp-útgáfuna og lokaskiptin áður en þú tengir núverandi bilun við gamla skýrslu. Endurtekningarákvörðunin ætti enn að stöðva óbreytta auðkennistilraun sem hefur ekkert gagnlegt nýtt svar.

Tengdir greinar