Retrofit+Rxjava简单的网络请求

//导入依赖

compile 'com.squareup.retrofit2:retrofit:2.0.1'
compile 'com.squareup.retrofit2:converter-gson:2.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'

//创建Apiservice接口类
package android_rxjava.baway.com.retrofitandrxjava;

import retrofit2.http.GET;
import rx.Observable;

/**
 * Created by C-PC on 2017/11/5.
 */

public interface ApiService {
    /**
     * 结合Retrofit+RxJava
     * http://service.meiyinkeqiu.com/service/ads/cptj
     * @param
     * @return
     */
    @GET("ads/cptj")
    Observable<News> getNoParams();

}
 

//Mainactivity类

package android_rxjava.baway.com.retrofitandrxjava;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import java.util.List;

import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import rx.Observable;
import rx.Observer;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getNoParams();
    }

    private void getNoParams() {
        Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.BASE_PATH).addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();
        ApiService apiService = retrofit.create(ApiService.class);
        Observable<News> observable = apiService.getNoParams();//生产事件
        //被观察者订阅观察 默认在同一个线程
        observable.subscribeOn(Schedulers.io())//指定IO做耗时操作
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<News>() {
                    @Override
                    public void onCompleted() {//完成

                    }

                    @Override
                    public void onError(Throwable e) {//失败
                       // Log.i("xxx", e.getMessage());
                    }

                    @Override
                    public void onNext(News news) {//消费事件
                        List<News.AdsBean> ads = news.getAds();
                        for (int i = 0; i < ads.size(); i++) {
                            News.AdsBean adsBean = ads.get(i);
                            String gonggaoren = adsBean.getGonggaoren();
                            Log.i("xxx", gonggaoren);
                        }
                    }
                });
    }

    ;
}

//bean类

package android_rxjava.baway.com.retrofitandrxjava;

import java.util.List;

/**
 * 1. 类的用途
 * 2. @author forever
 * 3. @date 2017/11/2 13:29
 */


public class News {


    private List<AdsBean> ads;
    private List<List<String>> dropdown;

    public List<AdsBean> getAds() {
        return ads;
    }

    public void setAds(List<AdsBean> ads) {
        this.ads = ads;
    }

    public List<List<String>> getDropdown() {
        return dropdown;
    }

    public void setDropdown(List<List<String>> dropdown) {
        this.dropdown = dropdown;
    }

    public static class AdsBean {
        /**
         * id : 126
         * imgsrc : https://service.meiyinkeqiu.com/upload/back/ads/1127f70b-f163-4a25-886b-9fb057e30c77.png
         * url : https://service.meiyinkeqiu.com/service/infomation.html?id=676https://service.meiyinkeqiu.com/service/infomation.html?id=676https://service.meiyinkeqiu.com/service/infomation.html?id=676
         * type : cptj
         * adsorder : 1
         * typecn : null
         * gonggaoren : 黑龙江风骨科技有限公司
         * timelength : 30
         * state : 1
         * ptime : 2017-10-28 18:26:51
         * lianjietype : 内部
         * docid : 676
         * menuurl : hyzx
         * infotype : 1
         */

        private int id;
        private String imgsrc;
        private String url;
        private String type;
        private int adsorder;
        private Object typecn;
        private String gonggaoren;
        private int timelength;
        private int state;
        private String ptime;
        private String lianjietype;
        private String docid;
        private String menuurl;
        private String infotype;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getImgsrc() {
            return imgsrc;
        }

        public void setImgsrc(String imgsrc) {
            this.imgsrc = imgsrc;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public int getAdsorder() {
            return adsorder;
        }

        public void setAdsorder(int adsorder) {
            this.adsorder = adsorder;
        }

        public Object getTypecn() {
            return typecn;
        }

        public void setTypecn(Object typecn) {
            this.typecn = typecn;
        }

        public String getGonggaoren() {
            return gonggaoren;
        }

        public void setGonggaoren(String gonggaoren) {
            this.gonggaoren = gonggaoren;
        }

        public int getTimelength() {
            return timelength;
        }

        public void setTimelength(int timelength) {
            this.timelength = timelength;
        }

        public int getState() {
            return state;
        }

        public void setState(int state) {
            this.state = state;
        }

        public String getPtime() {
            return ptime;
        }

        public void setPtime(String ptime) {
            this.ptime = ptime;
        }

        public String getLianjietype() {
            return lianjietype;
        }

        public void setLianjietype(String lianjietype) {
            this.lianjietype = lianjietype;
        }

        public String getDocid() {
            return docid;
        }

        public void setDocid(String docid) {
            this.docid = docid;
        }

        public String getMenuurl() {
            return menuurl;
        }

        public void setMenuurl(String menuurl) {
            this.menuurl = menuurl;
        }

        public String getInfotype() {
            return infotype;
        }

        public void setInfotype(String infotype) {
            this.infotype = infotype;
        }
    }
}
//Api类

package android_rxjava.baway.com.retrofitandrxjava;

/**
 * Created by C-PC on 2017/11/5.
 */

public class Api {
    public static final String BASE_PATH = "http://service.meiyinkeqiu.com/service/";

    public static final String BASE_URL = "https://api.github.com/";
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值