美文网首页
Retrofit+RxJava返回结果处理

Retrofit+RxJava返回结果处理

作者: yuezishenyou | 来源:发表于2020-04-26 10:03 被阅读0次

    一. 想获取头部里的cookie信息

    1.接口
    
    public interface ApiService {
    
        String GET_LOGIN = "api/news/feed/v62/?refer=1&count=20&loc_mode=4&device_id=34960436458&iid=13136511752";
    
        @GET(GET_LOGIN)
        Observable<Response<String>> requestLogin(@Query("category") String category, @Query("min_behot_time") long lastTime, @Query("last_refresh_sub_entrance_interval") long currentTime);
    
    }
    
    2.请求
    
     public void requestLogin(String account) {
            long timstamp = System.currentTimeMillis() / 1000;
            Observable<Response<String>> observable = mApiService.requestLogin(account,timstamp,timstamp);
            addSubscription(observable, new Subscriber<Response<String>>() {
                @Override
                public void onCompleted() {
    
                }
                @Override
                public void onError(Throwable e) {
    
                }
                @Override
                public void onNext(Response<String> response) {
                    KLog.d("=======headers:" + response.headers().toString());
                    KLog.d("=======body:" + response.body());
    
                    /*
                    * 这样可以得到头部里cookie信息
                    * body是个string, 应为泛型传的是String, 也可以传入UserBean
                    * */
                }
            });
        }
    
    

    二. 直接获取body数据

    接口
    public interface ApiService {
    
        String GET_LOGIN = "api/news/feed/v62/?refer=1&count=20&loc_mode=4&device_id=34960436458&iid=13136511752";
    
        @GET(GET_LOGIN)
        Observable<String> requestLogin(@Query("category") String category, @Query("min_behot_time") long lastTime, @Query("last_refresh_sub_entrance_interval") long currentTime);
        
    }
    
    
    请求
    public void requestLogin(String account) {
            long timstamp = System.currentTimeMillis() / 1000;
            Observable<String> observable = mApiService.requestLogin(account,timstamp,timstamp);
            addSubscription(observable, new Subscriber<String>() {
                @Override
                public void onCompleted() {
    
                }
                @Override
                public void onError(Throwable e) {
    
                }
    
                @Override
                public void onNext(String s) {
    
                    KLog.d("=======body:" + s);
                    /*
                    * s 就是body数据
                    * */
                }
    
            });
        }
    
    
    
    

    Retrofit常用

        @FormUrlEncoded
        @POST("login")
        Observable<String> login0(@FieldMap Map<String, String> map);
    
        @POST("login")
        Observable<String> login1(@Body NewsData data);
    
        @GET("public")
        Observable<String> login2(@QueryMap Map<String,String> map);
        
        @GET
        Observable<String> login3(@Url String url, @Query("city") String city);
    

    相关文章

      网友评论

          本文标题:Retrofit+RxJava返回结果处理

          本文链接:https://www.haomeiwen.com/subject/kutdwhtx.html