Android + OkHttp基本身份验证401未经授权的问题

时间:2016-12-05 20:31:45

标签: android authentication basic-authentication okhttp3

我正在尝试在Android上使用OkHttp连接到使用Basic Http身份验证的API,即使我似乎正在做的一切正常,但我收到了401 Unauthorized错误。

API的配置有点奇怪,因为它显然需要将用户名(Base64编码)包含在url中;它不会接受格式正确的“授权:基本”标题。所以请求必须格式化如下:

https://<username>:<password>@www.api.com/api/ver/1/method

其中“username”和“password”是用户输入的Base64编码用户名和密码。

当我使用OkHttp发送的URL并直接使用curl进行尝试时,它可以正常工作。所以我知道用户名和密码是正确的,它们被正确编码,并且正在构建网址。但是当我在我的应用程序中尝试它时,我得到一个401 Unauthorized错误,带有“Www-Authenticate”标题。如果我在Postman中使用“Authorization”标题而不是url中的用户名和密码进行尝试,那么它正是它发送的内容。

OkHttp是否有可能在这里尝试智能,并在发送请求之前从网址中提取用户名和密码并自动生成“授权”标头?如果是这样,我想阻止它这样做。

0 个答案:

没有答案