我先贴上我们服务器端注册相关的说明:

请求方式:POST

参数 :username,password

URL  : http://**************/register?(这个我就不贴上来了)

返回值:{status:400, msg:"注册失败", data:null}{status:200, msg:"注册成功", data:null}


       首先,注册功能的实现思路是,将EditText文本框内用户输入的数值取出,接着通过post方法将取出的值发送到服务器端对应的参数上,然后服务器会进行判断,将返回值反馈给客户端,我这里服务器上返回的是一串简单的json格式字符串,我们在将获取的返回json字符串进行解析,通过判断status值来给出提示是否注册成功(200表示成功,400表示失败);简单的json字符串解析可通过gson来解析。

       需要获得联网权限,在AndroidMainfest中配置

<uses-permission android:name="android.permission.INTERNET" />
在build.gradle(app)文件中添加okhttp和gson :
compile 'com.squareup.okhttp3:okhttp:3.9.0'compile 'com.google.code.gson:gson:2.8.2'
将这些配置好了,直接看下面代码即可

UserBeanl类
public class UserBean {    private String status;    private  String msg;    private String data;   public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public String getData() {        return data;    }    public void setData(String data) {        this.data = data;    }}
实现的功能代码RegisterActivity
public class RegisterActivity extends AppCompatActivity{    private EditText name;    private EditText pwd;    private String name1,pwd1;    private Button reg;    private Listlist;    final OkHttpClient client = new OkHttpClient();    private Handler mHandler = new Handler(){        @Override        public void handleMessage(Message msg){            if(msg.what==1){                String ReturnMessage = (String) msg.obj;                Log.i("获取的返回信息",ReturnMessage);                final UserBean userBean = new Gson().fromJson(ReturnMessage, UserBean.class);                final String AA = userBean.getMsg();                /***                 * 在此处可以通过获取到的Msg值来判断                 * 给出用户提示注册成功 与否,以及判断是否用户名已经存在                 */                Log.i("MSGhahahha", AA);            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);/** * 初始化 */        name = (EditText) findViewById(R.id.name);        pwd = (EditText) findViewById(R.id.pwd);        reg = (Button) findViewById(R.id.register);        reg.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //获取相关参数                name1=name.getText().toString().trim();                pwd1=pwd.getText().toString().trim();                //通过okhttp发起post请求                postRequest(name1,pwd1);            }        });    }    /**     * post请求后台     * @param username     * @param password     */    private void postRequest(String username,String password)  {        //建立请求表单,添加上传服务器的参数        RequestBody formBody = new FormBody.Builder()                .add("username",name1)                .add("password",pwd1)                .build();        //发起请求        final Request request = new Request.Builder()                .url("http://**************/login?")                .post(formBody)                .build();        //新建一个线程,用于得到服务器响应的参数        new Thread(new Runnable() {            @Override            public void run() {                Response response = null;                try {                    //回调                    response = client.newCall(request).execute();                    if (response.isSuccessful()) {                        //将服务器响应的参数response.body().string())发送到hanlder中,并更新ui                        mHandler.obtainMessage(1, response.body().string()).sendToTarget();                    } else {                        throw new IOException("Unexpected code:" + response);                    }                } catch (IOException e) {                    e.printStackTrace();                }            }        }).start();    }}

下面试布局代码
              



更多相关文章

  1. android网络通信
  2. “亲子安全卫士”项目总结
  3. Android的super.onCreate
  4. 实现在Android简单封装类似JQuery异步请求
  5. #android#数据持久化--SharedPreferences存储
  6. Android(安卓)用KSOAP2 调用 webservice 传入参数服务器接受不到
  7. rxjava2+okhttp3+retrofit2(请求参数按照参数键值从小到大先后顺
  8. Android笔记---使用HttpClient发送POST和GET请求
  9. 关于LayoutInflate和View-infalte的参数意义以及区别总结

随机推荐

  1. 联发科智能机战略转投Android 加速其规范
  2. android之单选框
  3. 1、What Makes an Android Application?
  4. 谁说Android的动画不廉价(二)之转场动画
  5. Android 4.0 x86安装教程 附带联网参数详
  6. 〖Linux〗穿越城墙之后,直接连接国内网站
  7. Android(安卓)WebView显示HTML时右边有空
  8. android酷炫翻页效果+图形分析
  9. Android(安卓)数据存储---File内部存储
  10. Android7.0中文API---ImageButton