Retrofit的使用总结(一)简单使用
2017-02-21 本文已影响72人
程序猿男神
文/程序员男神
前言
年后工作上有了变动,公司重新分了组。我的直接领导也变了,一切又要重新开始。交接旧的工作,迎接新的工作。学习新的东西,熟悉新的业务流程,一切在紧张忙碌中进行。最近合肥这天气跟一首歌唱的一样,一个像夏天一个像冬天,周末还穿短袖春游,周一上班就换上了羽绒服。周末照了好多美照,看下面......
Jordon
概念
Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,网络服务基于OkHttp 。
使用步骤
第一步:添加依赖,我们直接搜索library,添加编译。
图片.png第二步:定义接口,比如请求百度的首页。
/**
*
* desc: 定义一个接口
* author: dj
* date: 2017/2/21 18:22
*
*/
public interface Service {
@GET("/")
Call<String> getBaidu();
}
第三步:创建retrofit实例,设置一些参数,最后接口回调,请求成功或失败的实现。xml就一个TextView这里就不贴代码了。
/**
* desc: 请求activity
* author: dj
* date: 2017/2/21 21:41
*/
public class MainActivity extends AppCompatActivity implements Callback<String> {
private TextView tvShow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvShow = (TextView) findViewById(R.id.tv_show);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.baidu.com")
.addConverterFactory(new Converter.Factory() {
@Override
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {
return new Converter<ResponseBody, String>() {
@Override
public String convert(ResponseBody value) throws IOException {
return value.string();
}
};
}
}).build();
Service service = retrofit.create(Service.class);
Call<String> call = service.getBaidu();
call.enqueue(this);
}
@Override
public void onResponse(Call<String> call, Response<String> response) {
tvShow.setText(response.body());
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Toast.makeText(this, "请求失败:" + call.request().url(), Toast.LENGTH_SHORT).show();
t.printStackTrace();
}
}
第四步:添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
总结
最后,对自己说一句,生活本就乏味,我们应该积极面对。在浮躁的社会中,慢慢积累,累了就休息,有精力就学习。