retrofit的使用

来源:互联网 发布:动漫大全软件下载 编辑:程序博客网 时间:2024/06/05 01:05

1.动态代理
http://blog.csdn.net/lxj1137800599/article/details/76022141

2.常见注解说明
(1)一般的get

public interface IUserBiz{    @GET("users")    Call<List<User>> getUsers();}

@GET中所填写的value和baseUrl组成完整的路径
(2)动态的url访问@PATH

public interface IUserBiz{    @GET("{username}")    Call<User> getUser(@Path("username") String username);}

@GET注解中使用{username}声明了访问路径,实际运行中会通过@PATH(“username”)所标注的参数进行替换
(3)查询参数的设置@Query

public interface IUserBiz{    @GET("users")    Call<List<User>> getUsersBySort(@Query("sortby") String sort);}

组成的路径类似于http://baseurl/users?sortby=username
(4)POST请求体的方式向服务器传入json字符串@Body

public interface IUserBiz{ @POST("add") Call<List<User>> addUser(@Body User user);}Call<List<User>> call = userBiz.addUser(new User(1001, "jj", "123,", "jj123", "jj@qq.com"));

3.常见的adapter
RxJava2CallAdapterFactory(切换线程的)

4.常见的converter
SimpleXmlConverterFactory和GsonConverterFactory

5.如何取消网络请求—–Subscription
//Flowable在这里

    private Subscriber mSubscriber = new Subscriber<MyObject<List<MovieEntity>>>() {        @Override        public void onSubscribe(Subscription s) {            Log.e("Subscription", "Subscription");            s.request(Long.MAX_VALUE);            mSubscription = s;        }        @Override        public void onNext(MyObject<List<MovieEntity>> o) {            Log.e("onNext", "onNext");            mTextView.setText(o.subjects.toString());        }        @Override        public void onError(Throwable t) {        }        @Override        public void onComplete() {        }    };
原创粉丝点击