Android OkHttp Basic Auth with session cookie

Android OkHttp Basic Auth with session cookie

我正在使用 OkHttp 3.x,我需要通过 Basic Auth 向服务器进行身份验证。服务器 returns 身份验证成功后 JSESSIONID cookie。

我已经设置了一个 CookieJar 来存储返回的 cookie,并将其发送回服务器(收到很好)。

但是,目前我通过 headers 发送凭据,即使我发送了 cookie,基本身份验证凭据仍会发送。

如何仅在未设置 cookie 的情况下发送基本身份验证凭据?我想避免使用反应式身份验证以避免在服务器上生成 401 .

去除不需要的 header 的最简单方法是使用 interceptor。检查 cookie 是否存在,如果存在 cookie,则删除授权 header。