1

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

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

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

授权:基本 RU5YRU5EUkEASDASDQWEQFASkLTk2ZjgtOTASDQWEkMWNkYTA1

在文档中阅读它,我可以看到该authenticate方法:

为给定的凭据集生成授权字符串

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

我设法在 OkHttp docs中找到了一个类an Authenticator,但我不确定它是否是我要找的。

4

1 回答 1

2

您正在寻找Credentials.basic()

        String credential = Credentials.basic("jesse", "password1");
        return Request.Builder()
            .header("Authorization", credential)
            ...
            .build();
于 2019-09-06T11:56:53.217 回答