Retrofit 学习笔记和简单封装
来源:互联网 发布:淘宝周生生是真的吗 编辑:程序博客网 时间:2024/06/07 16:40
最近Retrofit框架大火,学习并记录一下,并且进行了简单的封装
1.首先定义接口
public interface LoginServer{ @POST("/123/login") //@POST很明显是用来标记请求方式的 当然一定有@GET Call<LoginBean> getString //要接受返回参数的bean类型 方法名getString可以自定义 只要跟下面调用的地方对应即可 (@Query("username")String username, //通过@Query注解需要的参数 @Query("pwd")String pwd, @QueryMap Map<String,String> map); //通过@QueryMap注解通过Map类型传入参数 //还有一些其他的注解可以定义参数 比如传入list参数的类型 等等 这里使用这两种方法 //经过测试 @Query和@QueryMap注解可以同时使用 可以在map中放入一些固定的参数 }
2.获得一个Retrofit实例
Retrofit retrofit = new Retrofit.Builder() .baseUrl(ConstantValue.COMMON) //传入baseUrl .addConverterFactory(GsonConverterFactory.create()) //加入对gson的支持 如果需要支持rxjava也需要加入 这里先不加 .build();
3.创建一个Call对象
LoginServer server = retrofit.create(LoginServer .class); //传入刚才定义的接口 Call<UserInfoBean> call = server.getString("username"); //UserInfoBean是要接收参数的bean类型
4.发送异步联网请求
call.enqueue(new Callback<UserInfoBean>() { @Override public void onResponse(Call<UserInfoBean> call, Response<UserInfoBean> response) { response.body(); //这个方法返回的是得到的UserInfoBean } @Override public void onFailure(Call<UnitBeanTreeBean> call, Throwable t) { } });
retrofit也支持发送同步的请求,这里就不写了,用不到
最近自己简单封装了一个RetrofitBuilder
项目地址:https://github.com/peirato/RetrofitBuilder
使用时 首先 设置baserul 在RetrofitBuilder方法中 这个地方:
retrofit = new Retrofit.Builder() .baseUrl("http://www.weather.com.cn") //填入baseUrl .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build();
在联网的时候调用就行
RetrofitBuilder.build()// .param("city","beijing") //该请求不需要参数 如果需要参数这么写就行// .param("day","2.14") .get("/data/sk/101010100.html", new RetrofitBuilder.CallBack<WertherBean>() { @Override public void onSuccess(WertherBean bean) { tv.setText(bean.getWeatherinfo().toString()); } @Override public void onError(String errMsg) { } @Override public void onFailure() { } }); }
0 0
- Retrofit 学习笔记和简单封装
- Rxjava2.0和Retrofit简单封装使用
- Retrofit和OkHttp简单的二次封装
- Retrofit简单封装
- Retrofit的简单封装
- Retrofit的简单封装
- Retrofit+RxJava 简单封装
- Retrofit简单封装
- Retrofit的简单封装
- Rxjava+Retrofit简单封装
- Retrofit封装和使用
- 使用Retrofit和Rxjava对联网进行简单封装
- Retrofit+okhttp3的简单封装实现网络请求和拦截
- retrofit的简单二次封装
- Retrofit的简单封装使用
- retrofit的简单笔记
- Rxjava和Retrofit网络封装
- Retrofit和RxJava的封装
- cinema dirctor自定义Item教程
- Java读取文件夹大小的6种方法及代码
- 省市区列表三级联动查询
- MySQL架构方案
- java-hashmap
- Retrofit 学习笔记和简单封装
- RequireJS和AMD规范
- MySQL建议列属性尽量为NOT NULL
- 单页WEB应用(二),Shell核心模块,模块组装器
- iOS 网页-WebView(二)
- MySQL中涉及的几个字符集
- 手机屏幕
- 写给Java开发者的Node.JS简介
- Nginx做转发