初学者--Android Retrofit+RxJava+OkHttp使用post请求
2017-11-10 19:51
441 查看
所用到的接口:(天行数据)
https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&page=1&num=20先看效果:
1.导入依赖:
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'
2.添加权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
3.所用到的类:
4.API类:
public class API { public static final String PAGE_URL = "https://api.tianapi.com/wxnew/"; }
5.ApiService接口
import retrofit2.http.POST; import retrofit2.http.QueryMap; import retrofit2.http.Url; import rx.Observable; /** * Created by xue on 2017-11-10. */ public interface ApiService { @POST Observable<PageBean> postpage(@Url String url, @QueryMap Map<String,String> map); }
6.MainActivity类:
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import org.w3c.dom.Text; import java.util.HashMap; import java.util.Map; 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 { private Button btn_getdata; private TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intiView(); } private void intiView() { btn_getdata = (Button) findViewById(R.id.getData); text = (TextView) findViewById(R.id.text); btn_getdata.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { postHome(API.PAGE_URL,"2","10"); } }); } private void postHome(String url,String page,String num) { Map<String,String> map=new HashMap<>(); map.put("key","8d6e3228d25298f13af4fc40ce6c9679"); map.put("num",num); map.put("page",page); Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); ApiService apiService = retrofit.create(ApiService.class); Observable<PageBean> postpage = apiService.postpage(url, map); postpage.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<PageBean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(PageBean pageBean) { Log.d("main",pageBean.getMsg()+"=========="+pageBean.getCode()); text.setText(pageBean.getMsg()+"=========="+pageBean.getCode()); } }); } }
相关文章推荐
- Android中的Retrofit+OkHttp+RxJava缓存架构使用
- Android开发相关——Retrofit+RxJava+OkHttp(下)使用
- Android Retrofit 2.0(二)使用教程OkHttp3 + Gson + RxJava
- Retrofit 2.0,RxJava(Android), OkHttp3.3
- Android应用架构之Retrofit使用 RxJava 详解 jsoup Android 平滑图片加载和缓存库 Glide 使用详解
- Android Retrofit+rxjava+okhttp请求网络的基本用法
- 学会Retrofit+OkHttp+RxAndroid三剑客的使用,让自己紧跟Android潮流的步伐
- Android RxJava/RxAndroid结合Retrofit使用
- android Retrofit+OkHttp使用自制的证书实现https安全传输
- 还不会使用OkHttp和Retrofit进行Android网络请求?看看这篇你就会了!
- Android Retrofit使用教程(三):Retrofit与RxJava初相逢
- android Retrofit+OkHttp使用自制的证书实现https安全传输
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- RxJava+Retrofit+OkHttp 懒人方式使用一
- Android网络请求三方库OkHttp,Retrofit的使用,及其注解使用的简介
- Android 中 Retrofit 结合 RxJava使用
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(二)
- Rxjava, RxAndroid, Retrofit 等库的使用
- Android-使用Mockito、Robolectric和RxJava及Retrofit进行单元测试
- Android中Retrofit+OkHttp进行HTTP网络编程的使用指南