RxJava 和 Retrofit 结合使用完成基本的登录和注册功能

主要包含客户端和服务端两个部分:

客户端

使用RxJava和Retrofit搭配完成基本的登录和注册功能

  • RxJava:一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库(说到根上,它就是一个实现异步操作的库)
  • Retrofit: 类型安全的网络库,封装了okhttp

登录api

一个带有两个参数的post请求

public interface LoginApi {
    @FormUrlEncoded
    @POST("/LoginServer/login.php")
    Observable<ResultReturn> login(@Field("email") String email, @Field("password") String password);
}

注册api

public interface RegisterApi {
    @FormUrlEncoded
    @POST("/LoginServer/register.php")
    Observable<ResultReturn> register(@Field("name") String name, @Field("email") String email, @Field("contact") String contact, @Field("password") String password);
}

NetWork

public class Network {
    private static LoginApi loginApi;
    private static RegisterApi registerApi;
    private static OkHttpClient okHttpClient = new OkHttpClient();
    private static Converter.Factory gsonConverterFactory = GsonConverterFactory.create();
    private static CallAdapter.Factory rxJavaCallAdapterFactory = RxJavaCallAdapterFactory.create();

    public static LoginApi getloginApi() {
        if (loginApi == null) {
            Retrofit retrofit = new Retrofit.Builder()
                    .client(okHttpClient)
                    .baseUrl(UrlContainer.BASE_URL)
                    .addConverterFactory(gsonConverterFactory)
                    .addCallAdapterFactory(rxJavaCallAdapterFactory)
                    .build();
            loginApi = retrofit.create(LoginApi.class);
        }
        return loginApi;
    }

    public static RegisterApi getRegisterApi() {
        if (registerApi == null) {
            Retrofit retrofit = new Retrofit.Builder()
                    .client(okHttpClient)
                    .baseUrl(UrlContainer.BASE_URL)
                    .addConverterFactory(gsonConverterFactory)
                    .addCallAdapterFactory(rxJavaCallAdapterFactory)
                    .build();
            registerApi = retrofit.create(RegisterApi.class);
        }
        return registerApi;
    }

}

注意:具体使用方法请参考详细代码 ,其它相关概念不再赘述。

《RxJava 和 Retrofit 结合使用完成基本的登录和注册功能》

《RxJava 和 Retrofit 结合使用完成基本的登录和注册功能》

服务端

初衷:就是想自己搭建一个最最基本的服务器!

功能:完成了一个最基本的登录和注册流程

注意:代码结构相对简单!仅供需要的朋友进行参考

部分代码参考github上的一个demo,一时间找不到那个demo的链接了,同时根据本案例自身需求做了一些调整

相关介绍:

  • 集成安装环境:WampServer 即在window下的apache、php和mysql的服务器软件
  • 集成开发环境:Zend Studio12.5.1
  • 数据传输类型:JSON
     {
         "success": true,
         "msg": "Login success",
         "result": {
             "name": "ss",
             "email": "123@qq.com",
             "contact": "123"
         }
     }

修改数据库配置文件

<?php
/*
 * All database connection variables
 */

define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_NAME", "simplelogin");

数据库的连接 数据表的创建 相关数据操作api

参考db_apis.php

登录

参考login.php

注册

参考register.php

    原文作者:Android
    原文地址: https://juejin.im/entry/58b673881b69e6006bfe560b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞