云炬Android开发笔记 5-1,2网络框架接口创建
生活随笔
收集整理的這篇文章主要介紹了
云炬Android开发笔记 5-1,2网络框架接口创建
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.網絡框架接口創建
1.1 使用的是第三方的框架
【第三方框架】Retrofit,封裝一個通用的框架,可以使用RxJava和RxAndroid進行封裝,比較難,這里不做講解;
?
1.2 restful 請求
大家都知道"古代"網頁是前端后端融在一起的,比如之前的PHP,JSP等。在之前的桌面時代問題不大,但是近年來移動互聯網的發展,各種類型的Client層出不窮,RESTful可以通過一套統一的接口為 Web,iOS和Android提供服務。另外對于廣大平臺來說,比如Facebook platform,微博開放平臺,微信公共平臺等,它們不需要有顯式的前端,只需要一套提供服務的接口,于是RESTful更是它們最好的選擇。在RESTful架構下:
鏈接:https://www.zhihu.com/question/28557115/answer/48094438
1.3網絡請求的具體實現類
【網絡請求的具體實現類】
【添加依賴】添加依賴可以使用兩種方式:【1】直接復制粘貼;【2】projectStucter尋找添加;
1 //網絡請求依賴 2 compile 'com.squareup.okio:okio:1.13.0' 3 compile 'com.squareup.okhttp3:okhttp:3.8.1' 4 compile 'com.squareup.retrofit2:retrofit:2.3.0' 5 compile 'com.squareup.retrofit2:converter-scalars:2.3.0' //以string 直接轉化來的,最直接的?
【框架的搭建需要考慮的問題】明白需要使用什么模式,來什么要什么的是建造者模式是最好的。
?
【源碼】com.flj.latte.net.RestService接口的封裝
1 package com.flj.latte.net;2 3 import java.util.WeakHashMap;4 5 import okhttp3.MultipartBody;6 import okhttp3.RequestBody;7 import okhttp3.ResponseBody;8 import retrofit2.Call;9 import retrofit2.http.Body; 10 import retrofit2.http.DELETE; 11 import retrofit2.http.FieldMap; 12 import retrofit2.http.FormUrlEncoded; 13 import retrofit2.http.GET; 14 import retrofit2.http.Multipart; 15 import retrofit2.http.POST; 16 import retrofit2.http.PUT; 17 import retrofit2.http.Part; 18 import retrofit2.http.QueryMap; 19 import retrofit2.http.Streaming; 20 import retrofit2.http.Url; 21 22 /** 23 * Created by 傅令杰 on 2017/4/2 24 */ 25 public interface RestService { 26 27 @GET //不傳遞任何的路由信息 28 Call<String> get(@Url String url, @QueryMap WeakHashMap<String, Object> params); //QueryMap是以鍵值對的形式進行存儲的; 29 30 /** 31 * 32 * @param url 33 * @param params 34 * @return 35 * FieldMap:請求體中包含的內容; 36 */ 37 @FormUrlEncoded 38 @POST //不傳遞任何的路由信息 39 Call<String> post(@Url String url, @FieldMap WeakHashMap<String, Object> params); 40 41 @POST 42 Call<String> postRaw(@Url String url, @Body RequestBody body); 43 44 @FormUrlEncoded 45 @PUT 46 Call<String> put(@Url String url, @FieldMap WeakHashMap<String, Object> params); 47 48 @PUT 49 Call<String> putRaw(@Url String url, @Body RequestBody body); 50 51 @DELETE 52 Call<String> delete(@Url String url, @QueryMap WeakHashMap<String, Object> params); 53 54 @Streaming //避免一次性將所有的文件下載下來,導致內存的溢出;但是在寫的時候,仍然需要將文件放在單獨的線程,否則在主線程操作任然會報錯。 55 @GET 56 Call<ResponseBody> download(@Url String url, @QueryMap WeakHashMap<String, Object> params); 57 58 @Multipart 59 @POST 60 Call<String> upload(@Url String url, @Part MultipartBody.Part file); 61 }【封裝枚舉類】
【傳入ip地址】
【RetrofitHolder創建成功】構建OkHttp請求
?
1.5 【restService的創建】
?
1.6 創建get方法
?
總結
以上是生活随笔為你收集整理的云炬Android开发笔记 5-1,2网络框架接口创建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云炬Android开发笔记 使用新版本A
- 下一篇: 云炬Android开发笔记 5-3,4