欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

云炬Android开发笔记 5-1,2网络框架接口创建

发布时间:2025/3/15 Android 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 云炬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网络框架接口创建的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。