Retrofit的学习笔记

个人见解:

1.Retrfit是针对OkHttp网络请求的框架(本质就是对okhttp进行了封装),对OkHttp进行了强依赖。

2.Retrofit使用了面向接口的方式进行网络请求。

3.Retrofit使用了动态生成的代理类来进行封装网络请求接口。


简单使用:

Retrofit是通过java自定义的一个接口来进行网络请求。

public interface RetrofitService {
//post请求的格式@FormUrlEncoded表示表单上传参数,@Field("username") username上传参数的字段名
    @FormUrlEncoded
    @POST("login")
    Call<LoginResult> getSearchBooks(@Field("username") String account,
                                           @Field("pwd") String password);
	//get请求格式 ,@Query("q") q表示参数的字段名   name表示在URL加入的参数,
    @GET("login1")
    Call<loginresult> getSearchBook(@Query("q") String name,
                                   @Query("tag") String tag, @Query("start") int start,
                                   @Query("count") int count);
}

创建一个Retrofit实例

  Retrofit  mRetrofit = new Retrofit.Builder()
                .baseUrl("http://192.168.0.136:8081/healthweb01/memebership/android/")
                .client(client)//自己设置一个okhttpclient(一般用于网络超时),可以不写(实例会默认一个)
                .addConverterFactory(factory)//gson转换器
                //.addCallAdapterFactory(RxJavaCallAdapterFactory.create())调用rxjava
                .build();

调用Retrofit网络请求

RetrofitService service=mRetrofit.create(RetrofitService.class);

Call<LoginResult> call = service.getSearchBooks("BK141217003005","123456");


call.enqueue(new Callback<LoginResult>() {
        @Override
        public void onResponse(Call<LoginResult> call,Response<LoginResult> response) {
            
           //成功
           
        }

        @Override
        public void onFailure(Call<LoginResult> call,Throwable throwable) {
          //失败
        }
});

想要取消正在请求的网络,可以调用call.cancel取消。


动态访问url

public interface RetrofitService {
quanxian这个输入的参数会成为路径{qx},{qx}=quanxian
    @GET("{qx}/login")
    Call<loginresult> getSearch(@Path("qx") String quanxian);
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值