【发布时间】:2012-06-20 21:15:23
【问题描述】:
我正在尝试设置一个 Android 应用程序,我可以在其中访问任意代理或 HTTP 身份验证后面的 URL。也就是说,应用程序不会立即知道 URL 是否需要身份验证,而是会通过向用户询问凭据来响应身份验证请求,就像它对 Android 浏览器所做的那样。
我最近制定了how to request user authentication for a WebView,响应来自浏览器的身份验证请求,打开一个对话框,并将用户引导到目标页面。我希望对 HttpClient 做同样的事情。
在我看来,基本过程是:
- 通过
HttpClient.execute执行请求。- 如果不是带有正确标头的 401 或 407,则触发“完成”回调。
- 否则...
- 弹出对话框询问用户名和密码。
- 通过
HttpClient.getCredentialsProvider().setCredentials在HTTP客户端设置http凭据。 - 返回步骤 1,直到用户单击取消或服务器放弃。在这种情况下,使用收到的最后一个响应触发“失败”回调。
我是在正确的轨道上还是有人已经实现了类似的东西?我不想在这方面重新发明轮子。
【问题讨论】:
标签: android http-authentication apache-httpclient-4.x