Retrofit简单使用请求百度地址

2017-06-15  本文已影响0人  vi_wong

本文地址

注入

在build.gradle(module:app)注入依赖

compile'com.squareup.retrofit2:retrofit:2.3.0'

入门

//清单文件,权限

<uses-permission android:name="android.permission.INTERNET" >

//自己编写一个网路请求接口

public interface IApi {

@GET("https://www.baidu.com/")

Call<ResponseBody> get();

}

@Url <url请求地址>

@GET()

Call<ResponseBody> get(@Url String url);

上面两种写法等价,用@Url 标签更好,拓展性强

//最简单的Retrofit对象

Retrofit retrofit =newRetrofit.Builder().baseUrl("https://www.baidu.com/").build();

//初始化IApi

IApi api = retrofit.create(IApi.class);

//调用请求get方法

Call call = api.get("https://www.baidu.com/");

call 是回调类,用两种回调方式:同步,异步

异步

call.enqueue(newCallback() {

@Override

public voidonResponse(Call call, Response response) {

Log.e("测试","---"+response.body().source());

}

@Override

public voidonFailure(Call call, Throwable t) {

Log.e("测试","---"+t.toString());

}

});

同步

call.execute();

一般在使用时,都是使用异步回调比较多吧

事务中断 :现在大部分网络请求框架都支持事务中断

call.cancel();

总结

就是想写一篇自己能看得懂的文章,毕竟不是每个人都能弄清楚或者直接看懂源码

总结以下几点

1.Retrofit对象的创建是用到单例模式,也就是说内存里面有且仅存在一个Retrofit对象,所以Retrofit创建时候,你可以把它放在Application类里面调用就行了

2.Retrofit对象的baseUrl(url)方法是一定要写的,不写就报java.lang.IllegalStateException: Base URL required.异常

3.暂时想那么多

上一篇下一篇

猜你喜欢

热点阅读