Retrofit初步认识
Retrofit作为一个网络框架可以避免我们写多长的代码。
1. App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作。
2. 在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,Retrofit根据用户的需求对结果进行解析。
retrofit可以帮使用者来简化工作。
以Android为例:
1.HTTP常用请求方法
分类 | 名称 | 备注 |
请求方法 | GET | 名称后都更、接受一个字符串path与baseURL组成一个完整的url |
POST |
把请求方法写入接口
如:
API接口
public interface API {
@GET("/get/text") //括号中填入需要拼接的字符串
Call<JsonResult> getJson();
}
使用方式:再需要使用的地方加入
API api = RetrofitManger.getRetrofit().create(API.class); //创建Retrofit
Call<JsonResult> task = api.getJson(); //得到结果
//结果
task.enqueue(new Callback<JsonResult>() {
@Override
public void onResponse(Call<JsonResult> call, Response<JsonResult> response) {
Log.d(TAG,"onResponse -->"+response.code());
//判断是否访问成功
if (response.code()== HttpURLConnection.HTTP_OK){
//打印成功结果
Log.d("Debug", "onResponse -->" + response.body());
}
}
@Override
public void onFailure(Call<JsonResult> call, Throwable t) {
//打印失败原因
Log.d(TAG,"onFailure-->"+t.toString());
}
});
2.参数类
分类 | 名称 | 备注 |
作用方法 | Headers | 用于添加请求头 |
作用与方法参数(形参) | Header | 用于添加不固定值的Header |
Body | 用于非表单请求体 | |
Field | 用于表单字段 (Field和FieldMap)与FormUrlEncoded注解配合 (Part和PartMap)与Multipart注解配合 FieldMap的接受类型为Map<String,String>,非String的会调用其同toString()方法 PartMap的默认接受类型为Map<String,String>,非RequestBody类型会通过Converter转换 |
|
FieldMap | ||
Part | ||
PartMap | ||
Path | 用于url Query和QueryMAp与Field和FieldMap一样 不同:Query和QueryMap中的数据体现再URL上,而Field和FieldMap的数据是请求体 |
|
Query | ||
QueryMap |