zoukankan      html  css  js  c++  java
  • android studio 自带的LoginActivity 添加登陆

    新手入门,想看看AS自带的DEMO怎么写的,于是在AS中新建工程时选择了LoginActivity。关于LoginActivity的分析,网上可以找到。直接上我改过的代码。 

    package com.example.myapplication.data;
    
    import android.util.Log;
    
    import com.example.myapplication.data.model.LoggedInUser;
    import com.example.myapplication.data.model.Token;
    import com.google.gson.Gson;
    import com.squareup.okhttp.FormEncodingBuilder;
    import com.squareup.okhttp.OkHttpClient;
    import com.squareup.okhttp.Request;
    import com.squareup.okhttp.RequestBody;
    import com.squareup.okhttp.Response;
    
    import java.io.IOException;
    
    /**
     * Class that handles authentication w/ login credentials and retrieves user information.
     */
    public class LoginDataSource{
    
        public LoginDataSource() {
    
        }
    
        public Result<LoggedInUser> login(String username, String password) {
    
            try {
                // TODO: handle loggedInUser authentication
                //Demo中这个地方直接返回fakeUser,我在这里加入了用户验证过程
                HttpLogin httpLogin = new HttpLogin("http://local.me/api/login",username,password);
                Thread t1 = new Thread(new Runnable() {
                    public void run() {
                        httpLogin.login();
                    }
                });
                t1.start();
                try {
                    t1.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
                LoggedInUser fakeUser =
                        new LoggedInUser(
                                httpLogin.getResultData(),
                                httpLogin.getResultData());
                return new Result.Success<>(fakeUser);
            } catch (Exception e) {
                return new Result.Error(new IOException("Error logging in", e));
            }
        }
    
        public void logout() {
            // TODO: revoke authentication
        }
    
        //登陆类,返回结果保存在resultData中
        private class HttpLogin {
            public HttpLogin(String url, String username, String password) {
                this.url = url;
                this.username = username;
                this.password = password;
                requestBody = new FormEncodingBuilder()
                        .add("username", username)
                        .add("password", password)
                        .build();
                /*Request request = new Request.Builder()
                        .url(this.url)
                        .post(requestBody)//添加post请求
                        .build();*/
                resultData = null;
            }
    
            private String url ;
            private String username ;
            private String password ;
    
            public String getResultData() {
                return resultData;
            }
    
            private String resultData;
            OkHttpClient okHttpClient = new OkHttpClient();
            RequestBody requestBody ;
            Request request ;
    
            public void login() {
                final Request request = new Request.Builder()
                        .url(this.url)
                        .post(requestBody)//添加post请求
                        .build();
                try {                final Response response = okHttpClient.newCall(request).execute();
                    final String resultData = response.body().string();
                    Log.d("loginResultData",resultData);
                    this.resultData = resultData;
    
                }
                catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    linux学习笔记28--监控命令vmstat,iostat, lsof
    linux学习笔记27--监控命令ps和top,free
    linux学习笔记26--命令wc
    linux学习笔记24---命令grep
    linux学习笔记23--时间命令date和cal
    linux学习笔记22---命令diff和diff3
    linux学习笔记22--命令ln
    Fiddler 抓取 ios 端数据包
    fiddler 清除证书+重新添加证书
    Fiddler 详尽教程与抓取移动端数据包
  • 原文地址:https://www.cnblogs.com/yesok/p/14344145.html
Copyright © 2011-2022 走看看