0

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

我需要该应用程序做的是:

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

我会喜欢一些具体的例子以及一般的例子,如果有一个教程可以让电话应用程序与服务器交谈,我也会喜欢。或与此相关的任何其他相关教程。

4

1 回答 1

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

于 2011-06-30T02:06:45.237 回答