使手机应用程序连接到https数据库需要什么?

时间:2011-06-30 01:48:16

标签: android python sl4a

我想构建一个与数据库对话的应用程序。 比喻就是youtube应用程序。它连接到安全主机(需要登录名和密码),然后根据查询返回用户结果。

我需要应用程序做的是:

  • 获取用户登录信息(最好是以安全的方式进行,而不是在用户手机上未加密存储 - 我认为这很容易用GetPassword解决,所以不用担心这个)
  • 一旦用户点击“登录”在我的网站上验证用户(根本不知道如何研究如何做到这一点。我知道常规浏览器登录页面的源代码在哪里,但不知道该怎么做)
  • 如何根据用户是谁进行查询? (例如他们的电子邮件和其他相关数据)。

我会喜欢一些具体的例子以及一般的,如果有一个方法让手机应用程序与服务器通话我也会喜欢它。或者任何其他相关的教程。

1 个答案:

答案 0 :(得分:1)

您可以使用HttpPost和HttpGet请求与服务器通信。 HttpGet在url中发送参数(例如:http://mysite.com/index.html?username=admin&password=cleartext)。这显然不是安全信息的首选方法。 HttpPost将数据发送到使用https加密的数据包中。以下是将用户输入的数据发送到网页的示例。

    EditText usernameText = (EditText)findViewById(R.id.username);
    EditText passwordText = (EditText)findViewById(R.id.password);
    String postParameters = "u=" + usernameText.getText() + "&p=" + passwordText.getText();
    try {
        DefaultHttpClient kccClient = new DefaultHttpClient();

        HttpPost postRequest = new HttpPost("http://www.mywebsite.com/login.php");
        HttpEntity postEntity = new StringEntity(postParameters);
        postRequest.setHeader("Content-Type", "application/x-www-form-urlencoded");
        postRequest.setEntity(postEntity);

        HttpResponse postResponse = kccClient.execute(postRequest);
        HttpEntity postResponseEntity = postResponse.getEntity();

        responseText.setText(EntityUtils.toString(postResponseEntity));
    } catch(Exception e) {
        responseText.setText(e.getMessage());
    }

要使用安全连接,只需将网址更改为https://www.mywebsite.com/login.php