从 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();
我正在将一些代码从 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();