Retrofit2.0使用介绍

  • 准备工作
下列是必须的
导入依赖:compile 'com.squareup.retrofit2:retrofit:2.1.0'
           compile 'com.squareup.retrofit2:converter-gson:2.1.0'
           compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
           具体版本根据AS来决定,但必须是squareup公司的。
导入联网权限:
  • 第一步
创建Retrofit对象,由于Retrofit是有构建者模式来完成的,因此其创建的时候用build
代码如下:
retrofit = new Retrofit.Builder()
.baseUrl("http://www.yuyigufen.com/")//表示你要请求的网址的Host部分,注意,前面没有"/",后面有"/"
.addConverterFactory(GsonConverterFactory.create())//添加转换器工厂对象的序列化和反序列化。这个必须要添加
.build();//构建得到Retrofit对象,另外别的常用的就是可以.client()//添加一个客户端对象
  • 第二步
创建(得到)一个自定义的API端点接口的实现
首先,准备实体类,里面的属性最好就是全部解析,其他的不需要特别的调整,全部解析就可以了。
在准备自定义的接口
public interface MyInterface {
    @POST("API/public/index/login/check.html")//这里展示的是post请求,这里面放的是path部分,后面不用添加"/"
    public Call getInfo(@QueryMap ArrayMap params);
//Call<你自己写的实体类>,
//@QueryMap 都是必须的
//params 表示后期添加的请求参数
}
可以得到API端点接口了
       myInterface = retrofit.create(MyInterface.class);//得到API端点接口对象
        params = new ArrayMap<>();//开始配置请求参数
        params.put("username","admin");//根据自定义的接口里面类型确定
        params.put("password","admin");
  • 第三步
得到API端点接口对象之后,将其设置
call = myInterface.getInfo(params);//call 其实是Call call;
  • 第四步
前面都是准备工作。最后开始执行
可以选择同步执行,可以选择异步执行,下面是异步执行:
call.enqueue(new Callback() {
            @Override
            public void onResponse(Call call, Response response) {
//这个是请求成功之后的回调。返回的是一个对象,是你自己定义的实体类的对象
                body = response.body();
//                Toast.makeText(MainActivity.this,body.getUerID(),Toast.LENGTH_SHORT).show();
                Log.d("flag","------"+body.getStatus());
                Log.d("flag","------"+body.getInfo().getContent());
                Log.d("flag","------"+body.getInfo().getUserID());
            }

            @Override
            public void onFailure(Call call, Throwable t) {
//这个是请求失败的回调
                Log.d("flag","不好意思失败了");
                Log.d("flag","ssssssssssssssssss"+t);
            }
        });

你可能感兴趣的:(Retrofit2.0使用介绍)