Android HTTP GET登录方法

标签 android http logging get

我有两个 Activity 。

主要 Activity 运行应用程序并初始化 http get 请求代码并将来自 JSON 的响应解析为字符串。

getmethod Activity 使用 http get 方法连接到服务器并将响应发送回我的主要 Activity 。

如何创建一个登录方法,让用户手动输入用户名和密码并将其传递给 get 方法?

最佳答案

您可以将此代码添加到您的主要 Activity - 它会为您完成所有繁重的工作。

/**
 * 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);

关于Android HTTP GET登录方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13799486/

相关文章:

http - 页面切换时背景加载缓慢

ios - 移动应用程序的视频流

java - log4j:WARN 找不到记录器的附加程序。 Log4j 1.2.17 jar

android - 为什么我的编辑联系人不起作用?

java - notifyDataSetChanged 不适用于 fragment

html - 这个套接字错误是什么意思?

logging - Elixir /凤凰/Ecto : How to customize SQL query log format?

testing - 如何使用 Jest 或其他 Javascript 测试框架测试 console.log 输出?

android - 在 ListView 中检查多个项目

android - onSaveInstanceState 没有被调用