之后通过基本身份验证登录并打开浏览器

时间:2014-12-02 15:07:03

标签: android authentication web login

所以我想登录使用基本身份验证登录的网页。

如果我使用授权标头发送HTTP Get,我会以HTML格式获得成功的响应。但之后,它又要求我登录,因为它不记得我已经登录了。

所以我的问题是:

如何保存此信息,我已经登录?

我知道,我之前已经问了这个问题,但由于没有人在另一个帖子上回答我的最后希望是打开另一个问题。

另一个主题:Android doesnt notice when i do an WWW-Authenticate


编辑:

所以我想做的是:

Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("The Website with the Authentication")); // Here, i want to add the request header
        handler.startActivity(browserIntent);

但我不知道如何,因为,你唯一可以发送意图的是Url(并且没有请求标题)。

希望这会让事情更加清晰。

1 个答案:

答案 0 :(得分:0)

基本身份验证不会在服务器端保存状态。每个请求都要求您包含登录信息。

通常情况是:

  1. 浏览器请求URL,缺少任何身份验证。
  2. 服务器返回代码401,该URL需要基本身份验证。
  3. 浏览器询问(用户或其自己的某个数据库)的用户名和密码。如果它询问用户密码,则浏览器会将用户名/密码存储在内部数据库中,并根据此URL进行键入。
  4. 对于此URL的每个进一步请求,浏览器都会在HTTP GET请求中包含该用户名和密码。
  5. 所以基本的答案是,服务器不记得您已经登录。浏览器会记住这一点。由于您正在编写浏览器,因此您可以让应用程序记住该URL的用户名/密码组合。无论您收到401响应后现在正在做什么,您只需要为该URL做。你甚至不需要等待401响应。