我正在将一些代码从Apache HTTP客户端迁移到OkHttp,因为Apache客户端在API 23中被弃用,现在在API 29中完全被淘汰。总的来说,我没有太多问题,但有一行我找不到等效的:
myHttpPost.addHeader(new BasicScheme().authenticate(
new UsernamePasswordCredentials(myUser, myPassword), HttpPost));
我已经调试了这一行,它生成了一个类似于这个的字符串:
授权:基本 RU5YRU5EUkEASDASDQWEQFASkLTk2ZjgtOTASDQWEkMWNkYTA1
在文档中阅读它,我可以看到authenticate
方法:
为给定的凭据集生成授权字符串
而且UsernamePasswordCredentials
基本上从我的用户和密码创建该凭据,但我在 OkHttp 中找不到等效凭据,有人遇到过这个问题吗?
我已经设法在 OkHttp 文档中找到了一个类,一个Authenticator
,但我不确定它是否是我正在寻找的。
您正在寻找 Credentials.basic((。
String credential = Credentials.basic("jesse", "password1");
return Request.Builder()
.header("Authorization", credential)
...
.build();