//配置retrofit2.0 implementation 'com.squareup.retrofit2:retrofit:+' implementation 'com.squareup.retrofit2:converter-gson:+'
1,创建登录接口
public interface ILoginApi { //登录接口 @GET("user/{adc}") Call<LoginBean> login(@Path("adc") String path, @Query("mobile") String mobile, @Query("password") String password);
@GET("user/login") Call<ResponseBody> login1(@Query("mobile") String mobile, @Query("password") String password);
@GET("user/login") Call<LoginBean> login(@QueryMap Map map);
@FormUrlEncoded @POST("user/login") Call<LoginBean> loginPost(@Header("source") String source, @Field("mobile") String mobile, @Field("password") String password);
} 2,HttpUtil,饿汉单例模式
public class HttpUtil {
private static String BASE_URL = "BaseUrl,结尾要以 / 结尾"; private final Retrofit mRetrofit;
private static final class SINGLE_INSTANCE { private static final HttpUtil INSTANCE = new HttpUtil(); }
public static HttpUtil getInstance() {
return SINGLE_INSTANCE.INSTANCE; }
private HttpUtil() { mRetrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .client(getOkHttpClient()) .build(); }
private OkHttpClient getOkHttpClient() {
return new OkHttpClient.Builder() .readTimeout(5, TimeUnit.SECONDS) .writeTimeout(5, TimeUnit.SECONDS) .connectTimeout(5, TimeUnit.SECONDS) .build(); }
public <T> T create(Class<T> clazz) { return mRetrofit.create(clazz); } } 3,调用
//利用Retrofit.create方法构造一个Api接口的实例 ILoginApi iLoginApi = RetrofitManager.getInstance().create(Base网络接口.class);
//构造一个Call请求,拿到Api接口的实例调用对应的方法去构造一个Call请求 //比如调用Base接口中的登录方法 final Call<LoginBean> call = iLoginApi.login("login","15501186523", "123456");
//一 、 异步请求
call.enqueue(new Callback<LoginBean>() { @Override public void onResponse(Call<LoginBean> call, Response<LoginBean> response) { if (response.isSuccessful()) { //通过response.body拿到最后解析后的bean对象 LoginBean loginBean = response.body(); if (loginBean != null & "0".equals(loginBean.getCode())) { Toast.makeText(MainActivity.this, "请求成功", Toast.LENGTH_LONG).show(); return; } } Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_LONG).show(); }
@Override public void onFailure(Call<LoginBean> call, Throwable t) { Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_LONG).show();
} });
--------------------- 作者:币圈小韭菜 来源:CSDN 原文:blog.csdn.net/liu_qunfeng… 版权声明:本文为博主原创文章,转载请附上博文链接! |
|