0

データベースと通信するアプリを作りたいです。例えは、たとえばYouTubeアプリです。安全なホストに接続し(ログインとパスワードが必要)、クエリに基づいてユーザーの結果に戻ります。

私がアプリに必要なのは:

  • ユーザーのログイン情報を取得します(できれば安全な方法で行い、暗号化せずにユーザーの電話に保存しないでください-これはGetPasswordで簡単に解決できると思うので、これについて心配する必要はありません)
  • ユーザーが「ログイン」をクリックしたら、自分のサイトでユーザーを認証します(これを行う方法を調べる方法すらまったくわかりません。通常のブラウザーからのログインページのソースコードがどこにあるかはわかりますが、どうすればよいかわかりません)
  • ユーザーが誰であるかに基づいてクエリを実行するにはどうすればよいですか?(たとえば、電子メールやその他の関連データ)。

一般的な例だけでなく、いくつかの具体的な例も気に入っています。電話アプリがサーバーと通信する方法のチュートリアルがあれば、それも気に入っています。または、そのことに関する他の関連チュートリアル。

4

1 に答える 1

1

HttpPost および HttpGet 要求を使用して、サーバーと通信できます。HttpGet は URL でパラメーターを送信します (例: http://mysite.com/index.html?username=admin&password=cleartext )。これは明らかに、情報を保護するための推奨される方法ではありません。HttpPost は、https を使用して暗号化されたパケットでデータを送信します。ユーザーが入力したデータを Web ページに送信する例を次に示します。

    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());
    }

安全な接続を使用するには、Web URL をhttps://www.mywebsite.com/login.phpに変更するだけです。

于 2011-06-30T02:06:45.237 に答える