我正在将一些代码从 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 中找不到等效项,有人遇到过这个问题吗?
我设法找到了一个类 in the OkHttp docs ,一个 Authenticator
,但我不太确定这就是我要找的东西。
最佳答案
您正在寻找 Credentials.basic() .
String credential = Credentials.basic("jesse", "password1");
return Request.Builder()
.header("Authorization", credential)
...
.build();
关于java - 从 Apache Http 客户端迁移到 OkHttp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57821339/