Android開源:RxJava 和 Retrofit 結合使用完成基本的登錄和注冊功能

Ty97Yjhazv 7年前發布 | 17K 次閱讀 Retrofit RxJava Android開發 移動開發

RxLoginAndRegister

主要包含客戶端和服務端兩個部分:

客戶端

使用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;
}

}</code></pre>

注意:具體使用方法請參考詳細代碼 ,其它相關概念不再贅述。

服務端

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

功能:完成了一個最基本的登錄和注冊流程

注意:代碼結構相對簡單!僅供需要的朋友進行參考

部分代碼參考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");</code></pre>

數據庫的連接 數據表的創建 相關數據操作api

參考db_apis.php

登錄

參考login.php

注冊

參考register.php

 

來自:https://github.com/soulrelay/RxLoginAndRegister

 

 本文由用戶 Ty97Yjhazv 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!