1

私には2つの活動があります。

メインアクティビティはアプリを実行し、http getリクエストコードを初期化し、JSONからの応答を文字列に解析します。

getmethodアクティビティは、http getメソッドを使用してサーバーに接続し、応答をメインアクティビティに送り返します。

ユーザーがユーザー名とパスワードを手動で入力し、これがgetメソッドに渡されるログインメソッドを作成するにはどうすればよいですか?

4

1 に答える 1

1

このコードをメイン アクティビティに追加することができます。これにより、すべての面倒な作業が行われます。

/**
 * Represents an asynchronous login/registration task used to authenticate
 * the user.
 */
public class UserLoginTask extends AsyncTask<String, Void, Boolean> {

    @Override
    protected void onPostExecute(final Boolean success) {
        if (success == true) {
            //Do whatever your app does after login

        } else {
            //Let user know login has failed
        }
    }

    @Override
    protected Boolean doInBackground(String... login) {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(
                "YOUR_ADDRESS_HERE.COM");
        String str = null;
        String username = login[0];
        String password = login[1];

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("username", username));
        nameValuePairs.add(new BasicNameValuePair("password", password));
        try {
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
            return false;
        }

        try {
            HttpResponse response = httpclient.execute(httppost);
            str = EntityUtils.toString(response.getEntity());

        } catch (IOException e) {
            e.printStackTrace();
        }

                    //Whatever parsing you need to do on the response
                    //This is an example if the webservice just passes back a String of "true or "false"

        if (str.trim().equals("true")) {

            return true;
        } else {
            return false;

        }
    }

このオブジェクトは次の方法で作成できます。

  UserLoginTask mAuthTask = new UserLoginTask();

リクエストを開始します (おそらく、ログイン ボタンから OnClick イベントを挿入しますか?):

mAuthTask.execute(mUsername, mPassword);
于 2012-12-10T11:14:43.090 に答える