简单注册登录请求
来源:互联网 发布:政府数据库 编辑:程序博客网 时间:2024/05/16 06:43
//封装okhttppublic interface OnNetListener<T> { public void onSuccess(T t); public void onFailure(Exception e);}public interface Api { public static boolean ISONLINE = true; public static String DEV = "http://169.27.23.105"; public static String ONLINE = "http://120.27.23.105"; public static String HOST = ISONLINE ? ONLINE : DEV; public static String Login = HOST + "/user/login"; public static String REGISTER = HOST + "/user/reg";}import java.util.Map;import okhttp3.Callback;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;public class OkHttpUtils { private static OkHttpUtils okHttpUtils; private final OkHttpClient client; private OkHttpUtils() { client = new OkHttpClient.Builder().build(); } public static OkHttpUtils getOkHttpUtils() { if (okHttpUtils == null) { synchronized (OkHttpUtils.class) { if (okHttpUtils == null) { okHttpUtils = new OkHttpUtils(); } } } return okHttpUtils; } /** * GET请求 * * @param url * @param callback */ public void doGet(String url, Callback callback) { Request request = new Request.Builder().url(url).build(); client.newCall(request).enqueue(callback); } /** * POST请求 * * @param url * @param params * @param callback */ public void doPost(String url, Map<String, String> params, Callback callback) { if (params == null) { throw new RuntimeException("参数为空了"); } FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry<String, String> entry : params.entrySet()) { builder.add(entry.getKey(), entry.getValue()); } FormBody formBody = builder.build(); Request request = new Request.Builder().url(url).post(formBody).build(); client.newCall(request).enqueue(callback); }}
//V层接口public interface IMainActivity { public String getAccout(); public String getPwd(); public void GoLogin(); public void show(String str);}//p层import java.util.HashMap;import bwie.com.a1510dproject.RegisterBean;import bwie.com.a1510dproject.model.IRegisterModel;import bwie.com.a1510dproject.model.RegisterModel;import bwie.com.a1510dproject.net.OnNetListener;import bwie.com.a1510dproject.view.IMainActivity;public class RegisterPresenter { private IMainActivity mainActivity; private IRegisterModel iRegisterModel; public RegisterPresenter(IMainActivity mainActivity) { this.mainActivity = mainActivity; iRegisterModel = new RegisterModel(); } public void dettach() { mainActivity = null; } public void register() { //调用View层的方法,去获取账号密码 String accout = mainActivity.getAccout(); String pwd = mainActivity.getPwd(); HashMap<String, String> params = new HashMap<>(); params.put("mobile", accout); params.put("password", pwd); iRegisterModel.register(params, new OnNetListener<RegisterBean>() { @Override public void onSuccess(RegisterBean registerBean) { mainActivity.show(registerBean.getMsg()); mainActivity.GoLogin(); } @Override public void onFailure(Exception e) { } }); }}//M层//接口public interface IRegisterModel { public void register(Map<String, String> params, final OnNetListener<RegisterBean> onNetListener);}import android.os.Handler;import android.os.Looper;import android.util.Log;import com.google.gson.Gson;import java.io.IOException;import java.util.Map;import bwie.com.a1510dproject.RegisterBean;import bwie.com.a1510dproject.net.Api;import bwie.com.a1510dproject.net.OkHttpUtils;import bwie.com.a1510dproject.net.OnNetListener;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;public class RegisterModel implements IRegisterModel { private Handler handler = new Handler(Looper.myLooper()); /** * 真正的网络请求,去注册 */ @Override public void register(Map<String, String> params, final OnNetListener<RegisterBean> onNetListener) { OkHttpUtils.getOkHttpUtils().doPost(Api.REGISTER, params, new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { onNetListener.onFailure(e); } }); } @Override public void onResponse(Call call, Response response) throws IOException { final String string = response.body().string(); Log.e("RegisterModel", string); //把数据返回到主线程进行处理 handler.post(new Runnable() { @Override public void run() { RegisterBean registerBean = new Gson().fromJson(string, RegisterBean.class); onNetListener.onSuccess(registerBean); } }); } }); }}
//一个登录activity 一个注册//登录布局 <EditText android:id="@+id/etAccout" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入账号" /> <EditText android:id="@+id/etPwd" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入密码" /> <Button android:id="@+id/bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="注册" />
//Main界面import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import bwie.com.a1510dproject.R;import bwie.com.a1510dproject.presenter.RegisterPresenter;public class MainActivity extends AppCompatActivity implements View.OnClickListener, IMainActivity { /** * 开始请求 */ private Button mBt; /** * 输入账号 */ private EditText mEtAccout; /** * 输入密码 */ private EditText mEtPwd; private RegisterPresenter registerPresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); registerPresenter = new RegisterPresenter(this); } private void initView() { mBt = (Button) findViewById(R.id.bt); mBt.setOnClickListener(this); mEtAccout = (EditText) findViewById(R.id.etAccout); mEtPwd = (EditText) findViewById(R.id.etPwd); } @Override protected void onDestroy() { super.onDestroy(); registerPresenter.dettach(); } @Override public void onClick(View v) { switch (v.getId()) { default: break; case R.id.bt: //注册 registerPresenter.register(); break; } } public String getAccout() { return mEtAccout.getText().toString().trim(); } public String getPwd() { return mEtPwd.getText().toString().trim(); } public void GoLogin() { Intent intent = new Intent(MainActivity.this, LoginActivity.class); startActivity(intent); } public void show(String str) { Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show(); }}
//注册布局<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登陆" />public class LoginActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); }}
//需要添加的依赖 compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' compile 'com.google.code.gson:gson:2.4'
阅读全文
1 0
- 简单注册登录请求
- 登录注册的请求
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- 实现简单登录注册
- javaWeb 简单注册登录(含数据库连接) -- (四) 用户登录请求与响应
- okhttp登录 注册 请求数据
- php简单登录注册处理
- 简单的用户注册登录
- 简单的用户登录注册
- javaweb 简单 de 登录注册
- 安卓里简单的登录注册
- 简单的注册登录页面
- Jsp 简单的 注册 登录
- 简单操作 Cookie 注册登录
- 简单的Javaweb登录注册
- Ajax登录注册-----数据请求 交互
- 从网络请求数据,实现注册登录
- Volley请求简单登录API
- mvp基类
- 传感器01
- CIA3 NOI接站(tarjan缩环+Floyd传递闭包+可相交最小路径覆盖)
- 算法训练 表达式计算
- mvp(okhttp)请求图片与数据
- 简单注册登录请求
- form表单验证,提交数据显示
- 第二个综合题的布局文件
- 《挑战程序设计竞赛》 P2 题目:抽签 优化,优化,再优化
- HashTable、HashSet和Dictionary的区别
- 第二个综合题的mainactivity
- MVP登录注册
- recycleview
- 第二个综合题的fragment