retrofit 是用post请求数据

来源:互联网 发布:升降电脑桌知乎 编辑:程序博客网 时间:2024/05/16 15:11

使用post请求数据和get请求数据没什么太大的出入,只是get请求更加直接一些(简单),而post请求需要设置很多我们想要数据的请求参数,拼接参数容易让人变得头晕目眩,接下来就给大家带来post拼接字符的过程。


同我们get请求一样 需要将api截取,不同的是post生成带参数的构造方法,而不是在post方法本身,根据接口类型的不同我们需要设置不同的参数。

api
public static final String POST_PAGE="http://api.tianapi.com/tiyu/";
在生成动态代理页面设置构造方法,用的是天行数据所以参数还是正常的页数和条目数,不同的是我们之前在get方法本身设置的后缀需要加到构造方法中
apiservice

@POSTObservable<PageBean> postpage(@Url String url, @QueryMap Map<String,String> map);

与get方法类似 需要创建retrofit 生成动态代理接口 创建观察者模式

post 方法的参数 要用一个map集合进行存储 参数类型要与接口一致才能正确请求

最后进行log打印 我们测试的数据 

private void getPage(String url,String page,String num){    Map<String,String> map=new HashMap<>();    map.put("key","e539283e9a1d63f915398bd38b12c38a");    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> pages=apiService.postpage(url,map);    pages.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("----------------","onnengnn"+pageBean.getNewslist().get(1).getTitle());                }            });}


原创粉丝点击