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

Ty97Yjhazv 2年前
   <h2>RxLoginAndRegister</h2>    <p>主要包含客户端和服务端两个部分:</p>    <h2>客户端</h2>    <p>使用RxJava和Retrofit搭配完成基本的登录和注册功能</p>    <ul>     <li>RxJava:一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库(说到根上,它就是一个实现异步操作的库)</li>     <li>Retrofit: 类型安全的网络库,封装了okhttp</li>    </ul>    <h3>登录api</h3>    <p>一个带有两个参数的post请求</p>    <pre>  <code class="language-java">public interface LoginApi {      @FormUrlEncoded      @POST("/LoginServer/login.php")      Observable<ResultReturn> login(@Field("email") String email, @Field("password") String password);  }</code></pre>    <h3>注册api</h3>    <pre>  <code class="language-java">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);  }</code></pre>    <h3>NetWork</h3>    <pre>  <code class="language-java">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;      }    }</code></pre>    <p>注意:具体使用方法请参考详细代码 ,其它相关概念不再赘述。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/57ac8a0fba95d15d34f48db53f5286bf.jpg"></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/c9d0e1095474c59c5c495918c92e008d.jpg"></p>    <h2>服务端</h2>    <p>初衷:就是想自己搭建一个最最基本的服务器!</p>    <p>功能:完成了一个最基本的登录和注册流程</p>    <p>注意:代码结构相对简单!仅供需要的朋友进行参考</p>    <p>部分代码参考github上的一个demo,一时间找不到那个demo的链接了,同时根据本案例自身需求做了一些调整</p>    <p>相关介绍:</p>    <ul>     <li>集成安装环境:WampServer 即在window下的apache、php和mysql的服务器软件</li>     <li>集成开发环境:Zend Studio12.5.1</li>     <li>数据传输类型:JSON</li>    </ul>    <pre>  <code class="language-java">{           "success": true,           "msg": "Login success",           "result": {               "name": "ss",               "email": "123@qq.com",               "contact": "123"           }       }</code></pre>    <h3>修改数据库配置文件</h3>    <pre>  <code class="language-java"><?php  /*   * All database connection variables   */    define("DB_HOST", "localhost");  define("DB_USER", "root");  define("DB_PASSWORD", "");  define("DB_NAME", "simplelogin");</code></pre>    <h3>数据库的连接 数据表的创建 相关数据操作api</h3>    <p>参考db_apis.php</p>    <h3>登录</h3>    <p>参考login.php</p>    <h3>注册</h3>    <p>参考register.php</p>    <p> </p>    <p>来自:https://github.com/soulrelay/RxLoginAndRegister</p>    <p> </p>