从 Apache Http 客户端迁移到 OkHttp

Migrating from Apache Http client legacy to OkHttp

我正在将一些代码从 Apache HTTP 客户端迁移到 OkHttp,因为 Apache 客户端在 API 23 中被弃用,现在,在 API 29 中完全被淘汰。总的来说,我没有遇到太多问题,但有一行我找不到对应的行:

myHttpPost.addHeader(new BasicScheme().authenticate(
                    new UsernamePasswordCredentials(myUser, myPassword), HttpPost));

我调试了这一行,它生成了一个类似于此的字符串:

Authorization: Basic RU5YRU5EUkEASDASDQWEQFASkLTk2ZjgtOTASDQWEkMWNkYTA1

阅读它 in the documentation 我可以看到 authenticate 方法:

Produces an authorization string for the given set of Credentials

UsernamePasswordCredentials 基本上是根据我的用户名和密码创建凭据,但我在 OkHttp 中找不到等效项,有人遇到过这个问题吗?

我找到了一个 class in the OkHttp docs,一个 Authenticator,但我不太确定这就是我要找的东西。

您正在寻找 Credentials.basic()

        String credential = Credentials.basic("jesse", "password1");
        return Request.Builder()
            .header("Authorization", credential)
            ...
            .build();