RxAndroid 与 Retrofit的使用
来源:互联网 发布:豚鼠系列 知乎 编辑:程序博客网 时间:2024/05/22 13:23
Retrofit与okhttp共同出自于Square公司,retrofit就是对okhttp做了一层封装。
首先使用Retrofit进行网络请求:
导入依赖:
compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson:2.0.2'实际请求中主要用到的是get和post请求,对应的Retrofit提供的请求方式注解有@GET和@POST,参数注解有@PATH和@Query。@PATH指的是通过参数填充完整的径,@Query就是请求的键值对的设置。下面实例为使用Retrofit进行请求并使用gson进行解析:
public class MainActivity extends AppCompatActivity { private TextView tv,tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); tv1 = (TextView) findViewById(R.id.tv1); tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getdata(); } }); } void getdata() { //创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder().baseUrl("http://b2b.yoyoce.com/index.php/mobile/Member/") .addConverterFactory(GsonConverterFactory.create()) .build(); Date movieService = retrofit.create(Date.class); Call<Bean_data> call = movieService.getTopMovie(162); call.enqueue(new Callback<Bean_data>() { @Override public void onResponse(Call<Bean_data> call, Response<Bean_data> response) { tv1.setText(response.body().getResult().getTitle()); } @Override public void onFailure(Call<Bean_data> call, Throwable t) { } }); } interface Date { @POST("goodsdetail") Call<Bean_data> getTopMovie(@Query("id") int id); }}下面介绍Retrofit与RxAndroid的结合:
导入依赖:
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'(与retrofit的版本号一致)compile 'io.reactivex:rxandroid:1.0.1'
具体代码:
public class MainActivity extends AppCompatActivity { private TextView tv, tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); tv1 = (TextView) findViewById(R.id.tv1); tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getdata(); } }); } void getdata() { Retrofit retrofit = new Retrofit.Builder().baseUrl("http://b2b.yoyoce.com/index.php/mobile/Member/") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); Date movieService = retrofit.create(Date.class); movieService.getTopMovie(162) .subscribeOn(Schedulers.newThread())//请求在新的线程中执行 .observeOn(Schedulers.io()) //请求完成后在io线程中执行 .doOnNext(new Action1<Bean_data>() { @Override public void call(Bean_data userInfo) { } }) .observeOn(AndroidSchedulers.mainThread())//最后在主线程中执行 .subscribe(new Subscriber<Bean_data>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { //请求失败 } @Override public void onNext(Bean_data userInfo) { //请求成功 Toast.makeText(MainActivity.this, userInfo.getResult().getTitle(), Toast.LENGTH_SHORT).show(); } }); } interface Date{ @POST("goodsdetail") Observable<Bean_data> getTopMovie(@Query("id") int id); }}
阅读全文
0 0
- RxAndroid 与 Retrofit的使用
- Retrofit + RxAndroid的使用
- Retrofit与RxAndroid结合使用
- MVP+Retrofit+RXAndroid使用详解
- retrofit rxandroid
- Android应用架构之Retrofit、RxAndroid使用
- Android RxJava/RxAndroid结合Retrofit使用
- Mvp+Rxandroid+Retrofit的简单实现
- Retrofit和Rxandroid的整合网络工具类
- 学会Retrofit+OkHttp+RxAndroid三剑客的使用,让自己紧跟Android潮流的步伐
- 使用OkHttp的addInterceptor功能实现RxAndroid+Retrofit请求结果的统一处理
- 学会Retrofit+OkHttp+RxAndroid三剑客的使用,让自己紧跟Android潮流的步伐
- RXAndroid Single的使用
- RxAndroid的使用
- RxAndroid的使用
- RxAndroid 的使用方式
- 使用retrofit框架的网络请求方法使用例子,同时+MVP +rxjava + rxandroid使用
- 使用retrofit框架的网络请求方法使用例子,同时+MVP +rxjava + rxandroid使用
- 一个 11 行 Python 代码实现的神经网络
- LeetCode 621. Task Scheduler
- Android程序签名打包
- 618大促,大数据看三大电商平台哪家最适合“剁手”?
- jstack分析最耗CPU的代码
- RxAndroid 与 Retrofit的使用
- opencv将三张单通道图合成为一张三通道图并保存
- RxPresenter浅析
- 数组参数和指针参数分析
- OC中的Crash异常的总结和捕获方法
- thinkPHP3.2 微信登录(微信扫码登录)
- 语音合成的思路、语音的声学特征、声音采样的一些资料
- mysql启动遇到一的些问题(持续更新中)
- apache 卸载和安装