0

我试图了解如何通过 Android 应用程序链接到 PHP/MySQL,以便从已经在数据库中的用户那里获取登录信息。

我发现这样做的一种方法是通过访问 PHP 页面,从应用程序发送输入的数据并将其发布到 PHP 上的参数上,PHP 本身应该查找用户引用并返回用户是否存在。

但是,我寻找如何做到这一点的每个地方都太复杂或没有得到很好的解释。所以我正在寻找一种方法来做到这一点,如果你知道一些教程或注释良好的代码,你可以提供给我学习它对我来说非常有用。或者你们中的任何人都可以教我如何做或者从哪里开始学习会很棒。

非常感谢您提前。

4

2 回答 2

0

对于这种交互,我使用以下代码:

public static String httpPost(String address, List<NameValuePair> parameters) {
    HttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(address);

    InputStream inputStream = null;
    BufferedReader reader = null;
    StringBuilder sb = new StringBuilder();

    try {
        httpPost.setEntity(new UrlEncodedFormEntity(parameters, "UTF-8"));
        HttpResponse response = httpClient.execute(httpPost);
        HttpEntity entity = response.getEntity();

        inputStream = entity.getContent();
        reader = new BufferedReader((new InputStreamReader(inputStream)));

        String line;
        while ((line = reader.readLine()) != null) {
            sb.append(line);
        }

    }catch (Exception e) {
        e.printStackTrace();
    }finally {
        try {
            if (reader != null)
                reader.close();
            if (inputStream != null)
                inputStream.close();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

    return sb.toString();
}

您必须传递这个函数 aString这是 PHP 脚本的 URL,以及一个NameValuePair包含要传递给脚本的数据的 s 列表,它会从服务器返回答案。

如果你想用它来登录,你可以使用类似的东西:

public boolean login(String username, String passwd) {
    List<NameValuePair> parameters = new ArrayList<NameValuePair>();
    parameters.add(new BasicNameValuePair("username", username);
    parameters.add(new BasicNameValuePair("password", passwd);

    String result = httpPost("http://test.com/login.php", parameters);

    return result.equals("ok");
}
于 2013-11-13T17:46:15.407 回答
0

已经有提到将输入数据发布到您的 PHP 网页的答案。您也可以采用另一种方法。

在这种方法中,您最初需要加载一个 webview(假设所有活动都需要登录)。在 web 视图中只需加载网页,比如http://www.example.com/login?device=mobile一旦用户成功登录,假设网站将加载登录页面,example.com/user您需要检查这是否是打开的 URL。则表示登录成功。然后你可以继续你的应用程序中的下一个活动。

参考

于 2013-11-13T18:24:58.093 回答