okhttpclient登录
来源:互联网 发布:小丽和小云在计算 编辑:程序博客网 时间:2024/06/05 06:31
此次说的是用一个OKhttpclient的框架做一个登录的操作
框架的样子我呢就直接放上来了
利用OKhttpclient返回的数据判断登录账号密码是否存在
有过一些基础的人适合看
package com.example.smallreegister.activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.smallreegister.GSONBean.CodeBean;
import com.example.smallreegister.R;
import com.example.smallreegister.bean.User;
import com.example.smallreegister.net.Api;
import com.example.smallreegister.net.MyOkHttpClient;
import com.example.smallreegister.presenter.UserPresenter;
import com.example.smallreegister.view.IUser;
import java.util.HashMap;
public class Main2Activity extends AppCompatActivity implements IUser, View.OnClickListener {
private EditText etName;
private EditText etPwd;
private Button bt_register;
private Button bt_show;
private User user;
private UserPresenter userPresenter;
private Handler handker = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
Toast.makeText(Main2Activity.this, "登录成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Main2Activity.this, InFoActivity.class);
startActivity(intent);
Main2Activity.this.finish();
break;
case 1:
Toast.makeText(Main2Activity.this, "登录失败!", Toast.LENGTH_SHORT).show();
break;
}
}
};
private String namephone;
private String pwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
userPresenter = new UserPresenter(this);
SharedPreferences name = getSharedPreferences("name", MODE_PRIVATE);
findid();
}
public void findid() {
etName = (EditText) findViewById(R.id.etName);
etPwd = (EditText) findViewById(R.id.etPwd);
bt_register = (Button) findViewById(R.id.bt_register);
bt_register.setOnClickListener(this);
bt_show = (Button) findViewById(R.id.bt_show);
bt_show.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_register:
//首先获取用户的账号密码
//userPresenter.show();
String username = etName.getText().toString().trim();
String userpwd = etPwd.getText().toString().trim();
if (TextUtils.isEmpty(username) || TextUtils.isEmpty(userpwd)) {
Toast.makeText(this, "账号和密码不能为空!", Toast.LENGTH_SHORT).show();
} else if (username.length() != 11) {
Toast.makeText(this, "手机号长度为11位!", Toast.LENGTH_SHORT).show();
} else if (userpwd.length() > 16 || username.length() < 6) {
Toast.makeText(this, "密码的长度为6-16!", Toast.LENGTH_SHORT).show();
} else {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("mobile", username);
hashMap.put("password", userpwd);
MyOkHttpClient.getInstance(this).dopost(Api.REGISTERID, hashMap, CodeBean.class);
}
MyOkHttpClient.getInstance(this).setOnClickReturn(new MyOkHttpClient.OnClickReturn() {
@Override
public void getCode(String code, final String uid) {
if (code.equals("0")) {
runOnUiThread(new Runnable() {
@Override
public void run() {
SharedPreferences name = getSharedPreferences("name", MODE_PRIVATE);
SharedPreferences.Editor edit = name.edit();
edit.putString("uid",uid);
edit.commit();
}
});
handker.sendEmptyMessage(0);
} else {
handker.sendEmptyMessage(1);
}
}
});
break;
case R.id.bt_show:
Intent intent = new Intent(this, RegisterActivity.class);
startActivityForResult(intent, Api.ACTIVITYCODE);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
namephone = data.getExtras().getString("username");
pwd = data.getExtras().getString("userpwd");
userPresenter.register();
}
@Override
public String getUserName() {
return namephone;
}
@Override
public String getUserPwd() {
return pwd;
}
@Override
public void showUser(User user) {
Toast.makeText(Main2Activity.this, user.getUserName()+"----"+user.getUserPwd(), Toast.LENGTH_SHORT).show();
}
}
//第二个页面
package com.example.smallreegister.activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.smallreegister.GSONBean.CodeBean;
import com.example.smallreegister.R;
import com.example.smallreegister.net.Api;
import com.example.smallreegister.net.MyOkHttpClient;
import java.util.HashMap;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
/**
* 请输入手机号
*/
private EditText mEtRegisterName;
/**
* 请输入密码
*/
private EditText mEtRegisterPwd;
/**
* 注册
*/
private Button mBtRegisterUp;
private Handler handker = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
Toast.makeText(RegisterActivity.this, "成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.putExtra("username", username);
intent.putExtra("userpwd", userpwd);
setResult(Api.ACTIVITYCODE, intent);
RegisterActivity.this.finish();
break;
case 1:
Toast.makeText(RegisterActivity.this, "失败!", Toast.LENGTH_SHORT).show();
break;
}
}
};
private String username;
private String userpwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initView();
}
private void initView() {
mEtRegisterName = (EditText) findViewById(R.id.et_register_Name);
mEtRegisterPwd = (EditText) findViewById(R.id.et_register_Pwd);
mBtRegisterUp = (Button) findViewById(R.id.bt_register_up);
mBtRegisterUp.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_register_up:
username = mEtRegisterName.getText().toString().trim();
userpwd = mEtRegisterPwd.getText().toString().trim();
if (TextUtils.isEmpty(username) || TextUtils.isEmpty(userpwd)) {
Toast.makeText(this, "账号和密码不能为空!", Toast.LENGTH_SHORT).show();
} else if (username.length() != 11) {
Toast.makeText(this, "手机号长度为11位!", Toast.LENGTH_SHORT).show();
} else if (userpwd.length() > 16 || username.length() < 6) {
Toast.makeText(this, "密码的长度为6-16!", Toast.LENGTH_SHORT).show();
} else {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("mobile", username);
hashMap.put("password", userpwd);
MyOkHttpClient.getInstance(this).dopost(Api.ZHUCEID, hashMap, CodeBean.class);
MyOkHttpClient.getInstance(this).setOnClickReturn(new MyOkHttpClient.OnClickReturn() {
@Override
public void getCode(String code, String uid) {
if (code.equals("0")) {
handker.sendEmptyMessage(0);
} else {
handker.sendEmptyMessage(1);
}
}
});
}
break;
}
}
}
//第三个页面
package com.example.smallreegister.activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.example.smallreegister.R;
public class InFoActivity extends AppCompatActivity implements View.OnClickListener {
/**
* username
*/
private TextView mTvInfoUsername;
/**
* 退出登录
*/
private Button mBtInfoReturn;
/**
* 跳转到商品搜索页
*/
private Button mBtInfoSelect;
private SharedPreferences name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_in_fo);
initView();
setuid();
}
private void setuid() {
name = getSharedPreferences("name", MODE_PRIVATE);
String string = name.getString("uid", "username字段");
mTvInfoUsername.setText(string);
}
private void cleanPreferences() {
SharedPreferences.Editor edit = name.edit();
edit.clear();
edit.commit();
}
private void initView() {
mTvInfoUsername = (TextView) findViewById(R.id.tv_info_username);
mBtInfoReturn = (Button) findViewById(R.id.bt_info_return);
mBtInfoReturn.setOnClickListener(this);
mBtInfoSelect = (Button) findViewById(R.id.bt_info_select);
mBtInfoSelect.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_info_return:
cleanPreferences();
Intent intent = new Intent(InFoActivity.this, Main2Activity.class);
startActivity(intent);
InFoActivity.this.finish();
break;
case R.id.bt_info_select:
Intent intent2 = new Intent(InFoActivity.this, ShoppingActivity.class);
startActivity(intent2);
InFoActivity.this.finish();
break;
}
}
}
//OKhttpclient
package com.example.smallreegister.net;
import android.content.Context;
import android.util.Log;
import com.example.smallreegister.GSONBean.CodeBean;
import com.example.smallreegister.GSONBean.SelectInfo;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;
/**
* Created by 郭康杰 on 2017/10/14.
*/
public class MyOkHttpClient {
private static volatile MyOkHttpClient myOkHttpClient;
private Context context;
private final OkHttpClient client;
private OnClickReturn onClickReturn;
public MyOkHttpClient(Context context) {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
client = new OkHttpClient.Builder()
.addInterceptor(logging)
.build();
this.context = context;
}
public interface OnClickReturn {
public void getCode(String code, String uid);
}
public void setOnClickReturn(OnClickReturn onClickReturn) {
this.onClickReturn = onClickReturn;
}
public static MyOkHttpClient getInstance(Context context) {
if (myOkHttpClient == null) {
synchronized (MyOkHttpClient.class) {
if (myOkHttpClient == null) {
myOkHttpClient = new MyOkHttpClient(context);
}
}
}
return myOkHttpClient;
}
public void dopost(String url, Map<String, String> params, final Class clazz) {
FormBody.Builder builder = new FormBody.Builder();
for (Map.Entry<String, String> gmap : params.entrySet()) {
builder.add(gmap.getKey(), gmap.getValue());
}
FormBody formBody = builder.build();
Request request = new Request.Builder().url(url).post(formBody).build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Log.e("REGISTERURL:---", string);
SelectInfo selectInfo = new Gson().fromJson(string.toString(), SelectInfo.class);
String msg = selectInfo.getMsg();
if (msg.equals("查询成功")) {
Log.e("REGISTERURL:---", "查询成功!!!!!!!!!!!!!!!!");
} else {
CodeBean codeBean = (CodeBean) new Gson().fromJson(string.toString(), clazz);
String code = codeBean.getCode();
int uid = 123;
if (code.equals("0")) {
uid = codeBean.getData().getUid();
}
Log.e("REGISTERURL:---", code + "");
onClickReturn.getCode(code, uid + "");
}
}
});
}
}
- okhttpclient登录
- OKHttpClient
- OkHttpClient
- OkHttpClient
- MVP结合OKhttpclient的登录操作
- Android WebView 与OkhttpClient登录状态保持一致,建立SESSION会话
- Android OkHttpClient
- OkHttpClient请求
- OKhttpclient使用
- okhttpclient 文件断点上传
- OkHttpClient网络框架封装
- OkHttpClient实例化解析
- android之OkHttpClient通信
- OkHttpClient使用示例
- OkHttpClient使用相关
- OKHttpClient使用示例
- https OkHttpClient 的使用
- okhttpclient下载功能
- 商品表
- 【makefile】一起写makefile(五)--变量的使用
- 第二周
- MainActivity
- ReactNative基础(一)编写一个登录页面
- okhttpclient登录
- 无限轮播
- [Day Zero]
- MyAdapter
- 从分布式到微服务,深挖Service Mesh
- MyApplication
- angularJS如何定义一个随机数
- 模拟淘宝库存的增加删除
- beeline 命令行客户端连接hive