Retrofit的使用
来源:互联网 发布:sql查询学生总分 编辑:程序博客网 时间:2024/06/07 15:05
Retrofit出自于Square公司,retrofit就是对okhttp做了封装。把网络请求都交给给了Okhttp,只需要通过简单的配置就能使用retrofit来进行网络请求了。Retrofit的网络请求分为:GET、POST、带头的请求。Retrofit的网络请求得到数据是在主线程中完成的。
这里介绍一下Retrofit的简单使用:
1、首先要导入依赖:
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' //下一行的目的可以使用这个工具类进行Gson解析 compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
2、先介绍GET请求:
先定义一个接口:Call的泛型是自己定义的实体类
假设接口地址是(我用的百度表示):
https://www.baidu.com/?tn=62095104_oem_dg
//接口里面只需要写这些东西public interface InterfaceRetrofit { //这里要value的值是“/”后面的一部分 @GET(value = "?tn=62095104_oem_dg") Call<Bean> getData();}
MainActivity中:
//ViewPager的网络请求 Retrofit retrofitViewPager=new Retrofit.Builder() //基础地址: .baseUrl("https://www.baidu.com/") //转换工厂,有这个方法就把Json数据转换成你定义好的实体类 //相当于Gson解析 .addConverterFactory(GsonConverterFactory.create()) .build(); InterfaceRetrofit interfaceRetrofit = retrofitViewPager.create(InterfaceRetrofit.class); retrofit2.Call<Bean> call1 = handPickAdsRetrofit.getData();call1.enqueue(new retrofit2.Callback<Bean>() { @Override public void onResponse(retrofit2.Call<Bean> call, retrofit2.Response<Bean> response) { //这里response就是获取到的数据 //response.body(),这个方法获取到Bean类 @Override public void onFailure(retrofit2.Call<Bean> call, Throwable t) { Toast.makeText(MainActivity,this, "网络获取失 败",Toast.LENGTH_SHORT).show(); } });
3、POST请求:
首先也是要先定义一个接口
还是拿百度网址举例子
https://www.baidu.com/?tn=62095104_oem_dg假设后面还有需要添加的字段,page=1,number=2
public interface InterfaceRetrofit { @POST(value = "?tn=62095104_oem_dg?") //这里添加请求字段 Call<Bean> getData(@Query("page") String page ,@Query("number") String number );}
MainActivity中:使用方法基本相同,关键在于接口的写法
Retrofit retrofit=new Retrofit.Builder() .baseUrl("https://www.baidu.com/") .addConverterFactory(GsonConverterFactory.create()) .build(); InterfaceRetrofit interfaceRetrofit = retrofit.create(InterfaceRetrofit.class); Call<Bean> call = interfaceRetrofit .getData(1,2);call.enqueue(new retrofit2.Callback<Bean>() { @Override public void onResponse(retrofit2.Call<Bean> call, retrofit2.Response<Bean> response) { //这里response就是获取到的数据 //response.body(),这个方法获取到Bean类 @Override public void onFailure(retrofit2.Call<Bean> call, Throwable t) { Toast.makeText(MainActivity,this, "网络获取失 败",Toast.LENGTH_SHORT).show(); } });
欢迎批评指正
0 0
- Retrofit 的使用
- retrofit 的使用。
- Retrofit 的使用简介
- Retrofit的使用封装
- retrofit的使用
- Retrofit的简单使用
- retrofit的使用
- Retrofit的简单使用
- Retrofit的简单使用
- Retrofit + RxAndroid的使用
- Retrofit框架的使用
- Retrofit+RxJava的使用
- Retrofit的初步使用
- Retrofit的使用
- Retrofit 初步的使用
- Retrofit的使用
- Retrofit的简单使用
- Retrofit的使用笔记
- RPC实践(一)起步从非RPC的RMI开始
- 简单的使用doGet, doPost方法
- JAVA基本数据类型范围和float、double精度问题
- 使用eclipse前的一些设置(环境配置好后)
- Learning Task Grouping and Overlap in Multi-Task Learning
- Retrofit的使用
- 12312313
- win10 vs2015 libxml2编译 各种版本
- 软件测试学习笔记(三)——软件测试过程
- C++11新特性之容器相关(一)
- ActiveMQ-JMS(三):接收消息
- java多线程和并发基础面试题
- ubuntu1404下安装anaconda
- ListView的Item嵌套ListView的显示和滑动的问题解决