Android(Java)-如何对站点的用户进行身份验证?
我正在开发一个Android应用程序(我的第一个应用程序之一),它显示一个桌面站点的移动友好界面。问题是网站的用户必须登录才能看到网站的这些部分 我不拥有该网站,也不以任何方式隶属于他们,但我想创建此应用程序,以供我个人学习体验,并帮助该网站的社区Android(Java)-如何对站点的用户进行身份验证?,android,authentication,Android,Authentication,我正在开发一个Android应用程序(我的第一个应用程序之一),它显示一个桌面站点的移动友好界面。问题是网站的用户必须登录才能看到网站的这些部分 我不拥有该网站,也不以任何方式隶属于他们,但我想创建此应用程序,以供我个人学习体验,并帮助该网站的社区 考虑到这一点,用于验证用户的登录表单可以通过Invision Power Boards(例如:community.invisionpower.com)提供支持的网站论坛访问。我知道如何从移动应用程序的用户处获取用户名和密码,但如何将此信息发送到论坛/
考虑到这一点,用于验证用户的登录表单可以通过Invision Power Boards(例如:community.invisionpower.com)提供支持的网站论坛访问。我知道如何从移动应用程序的用户处获取用户名和密码,但如何将此信息发送到论坛/网站上的登录表单,然后以编程方式“单击”登录按钮 首先,您必须决定是在浏览器中还是在代码中执行此操作 在代码中,您可能需要自动化HTTP post,如下所示:
// Start up your network connection
URL url = new URL("http://www.asdf.com/someFormSubmissionPage);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoInput(true);
String userInfo = "username=bob&password=pass";
connection.setRequestProperty("Content-Length", "" + userInfo.length());
connection.setDoOutput(true);
// Send the actual data
OutputStream out = connection.getOutputStream();
out.write(userInfo.getBytes(UTF_8));
// Flush everything to the destination
out.flush();
out.close();
BufferedReader connectionReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), UTF_8));
String responseLine;
// Collect the entire response
while ((responseLine = connectionReader.readLine()) != null)
response.append(responseLine);
此时,您可以对响应执行一些操作,可能保存服务器发送回您的cookie,或者您想要的任何内容
作为替代方案,您可以打开一个WebView并为其提供一个类似http://www.asdf.com/someFormSubmissionPage?username=bob&password=pass
这将在用户登录时启动浏览器
查看实际站点的登录页面时,在浏览器中执行
查看源代码
,即可找到someFormSubmissionPage
。用户名/通行证的详细信息也可以通过这种方式找到。谢谢!这正是我需要的。最后一个问题是关于你答案的最后一部分,我找不到这个表单提交页面/用户名和密码的变量。我还能找到其他方法吗?你必须能够看到它需要什么样的数据以及发送到哪里。通常,当您在网页上填写表单时,您可以右键单击->查看源代码。在这一点上,您确实需要搜索字段名,形成操作以获得所需的数据。你能发布表单URL吗?我知道了,这是URL:ips_用户名,ips_密码,&--看起来是这个URL的帖子。谢谢你的帮助。因此,如果我理解正确,对于WebView,我可以将它打开的URL设置为:?