利用Retrofit执行Post、Get请求,通俗易懂

1 Get请求

1.1 创建实体
1.2 创建代理接口

public interface MyService {
    @GET("url")
    Call<Contributor> getCall();
}
注意:
a. Get是get,post是post
b. 地址填全部,不能动态写入参数
c. getCall参数为空

1.3 创建Retrofit对象

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(urlbase)
        .addConverterFactory(GsonConverterFactory.create())
        .build();
注意:
a. baseUrl的地址填到端口即可,因为代理接口那边填了完整地址,这里会无效,但也要写到端口,否则报错

1.4 通过retrofit获取动态服务代理对象

MyService myService = retrofit.create(MyService.class);


1.5 通过实体调用请求方法,空参数,获取Call对象

//【5.创建call对象请求】执行github.contributors()完这里的时候,因为github是动态代理对象,会执行retrofit.create的创建方法,这个方法里面就创建了http请求对象也就是MethodHandler,里面包括了okhttpclient和request(就等于volley的request)Converter:数据转换器,这样创建了http请求,就可以交给call.enqueue来发送这个请求了
   
Call<MyEntity> call = myService.getCall();


1.6 Call执行异步请求

call.enqueue(new retrofit.Callback<MyEntity>() {
    @Override
    public void onResponse(retrofit.Response<MyEntity> response, Retrofit retrofit) {
        Log.i("tan6458", "response大小:" + response.body().getHomeCraImgList().size());
    }


    @Override
    public void onFailure(Throwable throwable) {


    }
});


2 Post请求

2.1 创建实体
2.2 创建代理接口

public interface MyService2 {
    @POST("url")
    Call<MyEntity2> getCall(@Query("tel") String phone);
}
注意:
d. Get是get,post是post
e. 地址填到问号前,
f. getCall参数用@Query+(”接口变量字段“)+String +形参

2.3 创建Retrofit对象

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(urlbase)
        .addConverterFactory(GsonConverterFactory.create())
        .build();
注意:
b. baseUrl的地址填到端口即可,因为代理接口那边填了完整地址,这里会无效,但也要写到端口,否则报错

2.4 通过retrofit获取动态服务代理对象

MyService2 myService2 = retrofit.create(MyService2.class);


2.5 通过实体调用请求方法,填入对应字段参数,获取Call对象

   
Call<MyEntity2> call = github2.getCall("18813145555");


2.6 Call执行异步请求

call.enqueue(new retrofit.Callback<MyEntity2>() {
    @Override
    public void onResponse(retrofit.Response<MyEntity2> response, Retrofit retrofit) {
        Log.i("tan6458", "response大小:" + response.body().getHomeCraImgList().size());
    }


    @Override
    public void onFailure(Throwable throwable) {


    }

});



源码


点击打开链接
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值