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公司的。
导入联网权限:<uses-permission android:name="android.permission.INTERNET"/>
  • 第一步
创建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<ShiYan> getInfo(@QueryMap ArrayMap<String,String> 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<ShiYan> call;
  • 第四步
前面都是准备工作。最后开始执行
可以选择同步执行,可以选择异步执行,下面是异步执行:
call.enqueue(new Callback<ShiYan>() {
            @Override
            public void onResponse(Call<ShiYan> call, Response<ShiYan> 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<ShiYan> call, Throwable t) {
//这个是请求失败的回调
                Log.d("flag","不好意思失败了");
                Log.d("flag","ssssssssssssssssss"+t);
            }
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • Retrofit项目Github主页:点击打开链接 Retrofit项目官方文档 :点击打开链接 1.设置 (1...
    千涯秋瑟阅读 3,741评论 2 3
  • 写在前面## 其实一直都没有写博客的习惯,借着这次公司内部分享的机会,开始写博客,希望以后渐渐养成习惯。也方便以后...
    seph_von阅读 4,381评论 0 1
  • 前言RxJava和Retrofit也火了一段时间了,不过最近一直在学习ReactNative和Node相关的姿势,...
    AFinalStone阅读 3,602评论 0 0
  • 前言 如果看Retrofit的源码会发现其实质上就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态...
    李某人吖阅读 6,445评论 0 0

友情链接更多精彩内容