retrofit使用

retrofit使用
代码:github

概念:Square基于RESTful风格推出的(基于OKHttp的)网络框架封装(本质仍然是OKHttp)
优点:API设计简洁易用,采用注解、网络请求参数配置更灵活,支持多种解析器,支持Rxjava

使用
1、retrofit开源库、OKHttp网络库、数据解析器继承,注册网络权限
2、创建接口设置请求类型与参数
3、创建retrofit对象,设置数据解析器
4、生成接口对象
5、调用接口方法返回Call对象
6、发送请求
7、处理返回数据

//创建Retrofit对象
Retrofit retrofit = new Retrofit.Builder().baseUrl("https://www.wanandroid.com/")
        .addConverterFactory(GsonConverterFactory.create())
        .build();

//获取UserMgService
UserMgService userMgService = retrofit.create(UserMgService.class);

//调用登录 login方法
Call<UserInfoModel> call = userMgService.login("username", "pwd");

//发送同步请求(需要自己代码开启子线程)
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                Response<UserInfoModel> response = null;
//                try {
//                    response = call.execute();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//                Log.d("onAction", "onAction: " + response.body().code);
//            }
//        }).start();

//发送异步请求
call.enqueue(new Callback<UserInfoModel>() {
    @Override
    public void onResponse(Call<UserInfoModel> call, Response<UserInfoModel> response) {
        Log.d("onAction", "onAction: " + response.body().data.getUsername());
    }

    @Override
    public void onFailure(Call<UserInfoModel> call, Throwable t) {

    }
});


//UserMgService.java
public interface UserMgService {
//    @GET("login")
//    Call<UserInfoModel> login(@Query("username") String username, @Query("password") String pwd);

//    post方式
    @POST("user/login")
    @FormUrlEncoded
    Call<UserInfoModel> login(@Field("username") String username, @Field("password") String password);
}

//UserInfoModel.java
public class UserInfoModel {
    public UserInfo data;
    public int errorCode;
    public String errorMsg;

    public static class UserInfo {
        private String email;
        private String icon;
        private int id;
        private String password;
        private int type;
        private String username;
        private List<Integer> collectIds;

        //set/get方法...
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值