【Android】 使用okhttp实现注册登录功能(与服务器端)
来源:互联网 发布:怎么把mac照片导入u盘 编辑:程序博客网 时间:2024/06/07 06:44
我先贴上我们服务器端注册相关的说明:
请求方式: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; }}实现的功能代码RegisterActivitypublic class RegisterActivity extends AppCompatActivity{ private EditText name; private EditText pwd; private String name1,pwd1; private Button reg; private List<UserBean>list; 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(); }}
下面试布局代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lushuai.testregister.RegisterActivity"> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="40dp" android:hint="账号"/> <EditText android:id="@+id/pwd" android:layout_width="match_parent" android:layout_height="40dp" android:hint="密码"/> </LinearLayout>
阅读全文
0 0
- 【Android】 使用okhttp实现注册登录功能(与服务器端)
- Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例)
- Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例)
- Android 实现登录注册功能
- Android 实现登录注册功能
- android studio使用Bmob来实现登录注册的功能
- android studio使用Bmob来实现登录注册的功能
- okhttp框架实现注册登录
- 用户注册与登录功能的实现
- Android PHP JSON 登录注册功能实现
- Android Java Web实现登录注册(二)——服务器端
- Android 登录注册功能
- Retrofit+RxJava+Okhttp简单实现登录注册
- 使用Forms Authentication实现用户注册、登录 (二)用户注册与登录
- Android实践——使用Bmob实现登录、注册等功能
- Android中使用http实现注册登录
- ios 实现注册 登录功能
- php实现登录注册功能
- MeanStdDev 均值 标准差
- Git学习笔记与IntelliJ IDEA整合
- 懂中文就能学会的高薪职位,你猜对了吗?
- rabbitmq设置日志级别和路径
- 行为型-命令模式(Command)
- 【Android】 使用okhttp实现注册登录功能(与服务器端)
- Qt QDateEdit 设置下拉日历
- USB Type-C学习点滴
- QNX下启动TF驱动和EMMC驱动的说明
- 一段简短的说明,写给自己看
- unity_NGUI系统学习(二)_Panel组件
- 硬币找零
- Java集合
- 主成分分析详解(包含最大方差理论、协方差、几何意义) Principal components analysis