当前位置 博文首页 > 李猫er:【Android项目实战 | 从零开始写app(五)】okhttp+gson实
使用Okhttp3
进行联网请求,通过post
方法把用户名和密码发送到服务进行校验,如果账户已存在则提示,注册成功后,使用Gson
解析返回的json数据提示用户,如下:
(额,这里要说一下:提示逻辑处理有点问题,这里代码已经修改好了,但是gif中还没有,由于时间不是很多就不再录制一遍了,见谅~)
一、【Android项目实战 | 从零开始写app(一)】 创建项目
二、【Android项目实战 | 从零开始写app(二)】实现闪屏页,启动app
三、【Android项目实战 | 从零开始写app(三)】实现引导页,进入登录or主页面
四、【Android项目实战 | 从零开始写app(四)】Okhttp+Gson实现服务端登录验证功能
五、【Android项目实战 | 从零开始写app(五)】okhttp+gson实现服务端注册功能
六、【Android项目实战 | 从零开始写app(六)】用TabLayout+ViewPager搭建App 框架主页面底部导航栏
七、【Android项目实战 | 从零开始写app(七)】优化主页导航栏,禁用主页页面滑动切换效果
八、【Android项目实战 | 从零开始写app(八)】实现app首页广告轮播图切换和搜索跳转
九、【Android项目实战 | 从零开始写app(九)】Tablayout+ViewPager实现页面分类顶部标题页面联动切换
十、【Android项目实战 | 从零开始写app(十)】Okhttp+glide+json+ListView实现新闻模块数据的填充显示
十一、【Android项目实战 | 从零开始写app(十一)】实现app首页智慧服务页面服务分类数据的解析及点击跳转
十二、【Android项目实战 | 从零开始写app(十二)】实现app首页智慧服务&热门推荐&热门主题、新闻
十三、【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录&信息修改等功能
十四、【Android项目实战 | 从零开始写app(十四)】实现图片发布模块 | 必知必会之调用系统相机拍照、相册
十五、【Android项目实战 | 从零开始写app(教程汇总)】Android 项目实战系列汇总、源代码
package com.example.myapp.activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.CallLog;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.example.myapp.R;
import com.example.myapp.bean.ResultBean;
import com.example.myapp.utils.APIConfig;
import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
private EditText et_name;
private EditText et_nicke;
private EditText et_phonr;
private EditText et_password;
private RadioButton rb_man;
private RadioButton rb_woman;
private RadioGroup rg_sex;
private Button btn_register;
private Button btn_login;
private OkHttpClient client = new OkHttpClient();
private Intent intent = null;
String sex = "";
private Handler handler = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if (msg.what==0) {
String resultStr = (String) msg.obj;
Log.i("获取返回的信息:",resultStr);
final ResultBean resultBean = new Gson().fromJson(resultStr,ResultBean.class);
int resultCode = resultBean.getCode();
if (resultCode==200){
Toast.makeText(getApplicationContext(),"注册成功:"+resultStr,Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),"注册失败:"+resultStr,Toast.LENGTH_LONG).show();
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initView();
}
private void initView() {
et_name = (EditText) findViewById(R.id.et_name);
et_nicke = (EditText) findViewById(R.id.et_nicke);
et_phonr = (EditText) findViewById(R.id.et_phone);
et_password = (EditText) findViewById(R.id.et_password);
rb_man = (RadioButton) findViewById(R.id.rb_man);
rb_woman = (RadioButton) findViewById(R.id.rb_woman);
rg_sex = (RadioGroup) findViewById(R.id.rg_sex);
btn_register = (Button) findViewById(R.id.btn_register);
btn_login = (Button) findViewById(R.id.btn_login);
btn_register.setOnClickListener(this);
btn_login.setOnClickListener(this);
rg_sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId==rb_man.getId()) {
sex="1";
}else {
sex="0";
}
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_register:
Register();
break;
case R.id.btn_login:
intent = new Intent(getApplicationContext(),LoginActivity.class);
startActivity(intent);
break;
}
}
private void Register() {
// validate
String name = et_name.getText().toString().trim();
if (TextUtils.isEmpty(name)) {
Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;