Retrofit的简单使用

直接干

所用依赖

//retrofit2
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
//解析到封装类
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'

1.新建接口

Call<TestDataBean> getTestData();

这里返回一个实体类,用到的就是上述第二个依赖

现在说明一下常用的注解

get请求中

方法注解

@GET("url")

参数注解

@Query("key") String value 用于路径拼接
@QueryMap("key") Map<Object,Object> map  使用map携带key/value
@Path("id") String id  方法注解中的路径添加"/{id}"用于某些业务动态传递 
@Url String url 用于不是以baseUrl开头的请求

Post请求中

方法注解

@FormUrlEncoded
@POST

参数注解

@Field("key") String value 请求体的参数 
@FieldMap("key") Map<Object,Object> map 使用map携带key/value  
@Body TestDataBean bean 如果同时使用了addConverterFactory(GsonConverterFactory.create()),那么你的请求参数会作为json格式的字符串传递给服务器 

其他的

@Headers("Domain-Name: xxxxxx") 添加请求头
@Streaming 在response中获取输入流,读取数据保存

 创建Retrofit实例

Retrofit实例没必要创建多个,实例化一次就可以了
public class HttpMode {
    private ServiceApi api;

    public HttpMode() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://xxx.xxx.xxx/")//共同的基路径
                .addConverterFactory(GsonConverterFactory.create())//把结果解析到实体类
                .build();
        api = retrofit.create(ServiceApi.class);
    }

    public void getHttp() {
        api.getTestData("key")//这里的参数视接口定义的参数而定
                .enqueue(new Callback<TestDataBean>() {
                    @Override
                    public void onResponse(Call<TestDataBean> call, Response<TestDataBean> response) {
                        Log.d("response",response.body().toString());
                    }

                    @Override
                    public void onFailure(Call<TestDataBean> call, Throwable t) {
                        Log.d("Throwable",t.getMessage());
                    }
                });
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值