Android(Java)-如何对站点的用户进行身份验证?

Android(Java)-如何对站点的用户进行身份验证?,android,authentication,Android,Authentication,我正在开发一个Android应用程序(我的第一个应用程序之一),它显示一个桌面站点的移动友好界面。问题是网站的用户必须登录才能看到网站的这些部分 我不拥有该网站,也不以任何方式隶属于他们,但我想创建此应用程序,以供我个人学习体验,并帮助该网站的社区 考虑到这一点,用于验证用户的登录表单可以通过Invision Power Boards(例如:community.invisionpower.com)提供支持的网站论坛访问。我知道如何从移动应用程序的用户处获取用户名和密码,但如何将此信息发送到论坛/

我正在开发一个Android应用程序(我的第一个应用程序之一),它显示一个桌面站点的移动友好界面。问题是网站的用户必须登录才能看到网站的这些部分

我不拥有该网站,也不以任何方式隶属于他们,但我想创建此应用程序,以供我个人学习体验,并帮助该网站的社区


考虑到这一点,用于验证用户的登录表单可以通过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设置为:?