Android网络请求Retrofit进行二次封装,拿过来就能用
2017-11-05 19:38
465 查看
在
这里对Retrofit进行了一下二次封装,把一些固定的代码摘出来了,
Andrroid开发中,网络请求十分常用而在
Android网络请求库中,
Retrofit是当下最热的一个网络请求库
![](http://upload-images.jianshu.io/upload_images/944365-a3109ad0446b0540.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
import android.util.Log; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by 31962 on 2017/11/2. */ public class RetrofitUtils { private static RetrofitUtils retrofitUtils; private static Retrofit retrofit; public RetrofitUtils() { } public static RetrofitUtils getInstance(){ if(retrofitUtils == null){ synchronized (RetrofitUtils.class){ if(retrofitUtils == null){ retrofitUtils = new RetrofitUtils(); } } } return retrofitUtils; } public static synchronized Retrofit getRetrofit(String url){ HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { Log.i("xxx", "log: "+message); } }); httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient httpClient = new OkHttpClient.Builder().addInterceptor(httpLoggingInterceptor).connectTimeout(5000, TimeUnit.SECONDS).build(); if(retrofit == null){ retrofit = new Retrofit.Builder().baseUrl(url).client(httpClient).addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); } return retrofit; } public <T>T getApiService(String url,Class<T> cl){ Retrofit retrofit = getRetrofit(url); return retrofit.create(cl); } }
这里用的时候需要写一个ApiService接口,用来写请求:
package com.bewei.retrofit.inter;import com.bewei.retrofit.bean.News;import com.bewei.retrofit.bean.Party;import com.bewei.retrofit.bean.User;import retrofit2.Call;import retrofit2.http.Field;import retrofit2.http.FormUrlEncoded;import retrofit2.http.GET;import retrofit2.http.POST;import retrofit2.http.Path;import retrofit2.http.Query;/** * 1. 类的用途 网络接口 * 2. @author forever * 3. @date 2017/11/1 14:32 */public interface ApiService { /** * 无参get请求 * http://service.meiyinkeqiu.com/service/ads/cptj * * @return */ @GET("service/ads/cptj") Call<News> getNoParams(); /** * 有参get请求 * 拼接参数 /形式 * * @return https://api.github.com/users/baiiu */ @GET("users/{user}") Call<User> getHasParams(@Path("user") String user); /** * http://www.93.gov.cn/93app/data.do * channelId * startNum * 拼接 ? & * 为主 */ @GET("data.do") Call<Party> getHasParams2(@Query("channelId")int channelId, @Query("startNum") int startNum ); /** * post请求 http://120.27.23.105/user/reg 注册 */ @POST("reg") @FormUrlEncoded//支持表单提交 Call<User> register(@Field("mobile")String mobile,@Field("password")String password);}
这里边列出了各种方式的网络请求,
这样,就可以使用Retrofit了
相关文章推荐
- [置顶] Android Kotlin 开发--偶遇Rxjava、Retrofit进行网络请求
- android http——网络请求二次封装的框架设计
- Android基于OkHttpUtils网络请求的二次封装
- Android RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
- Android-Volley网络通信框架(二次封装数据请求和图片请求(包含处理请求队列和图片缓存))
- android http——网络请求二次封装的框架设计
- rxjava2+rxandroid2+retrofit2 封装网络请求
- react native 使用fetch进行网络请求(https),解决SSLHandshake问题,以及怎样进行二次封装
- android 网络请求Retrofit+rxjava+okhttp 轻封装
- iOS---对AFNetworking进行二次封装,使用单例单独处理网络请求数据
- Android网络请求框架AsyncHttp二次封装
- Android-Volley网络通信框架(二次封装数据请求和图片请求(包括处理请求队列和图片缓存))
- Android 中Volley二次封装并实现网络请求缓存
- android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件
- [置顶] Android 利用APT对网络请求进行极简封装
- Retrofit和RxJava网络请求二次封装
- Android 单例模式封装 RxJava+Retrofit 网络请求
- android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件
- Android Kotlin(二)—— Kotlin与Retrofit进行网络请求RecyclerView展示图片列表
- 还不会使用OkHttp和Retrofit进行Android网络请求?看看这篇你就会了!