Retrofit的简单使用
2017-03-27 20:55
148 查看
最近学习了Retrofit的基本用法,下面跟大家分享一下自己的总结
1.在app中的build.gradle添加依赖
Json解析库
2.创建接口:
public interface Api{}
GET请求:
@PathQuery
@Path
两者的区别为:
@Query是直接把参数拼接在url后面,如:url?more=more
@Path是把传进来的参数直接填进去,注意要相同的字段
POST请求:
Json格式:
先建立Bean:UserParam类
接下来创建方法:
Form表单格式
其中Headers()是添加请求头信息,外字符串数组
3.创建Retrofit对象
其中加上addConverterFactory(GsonConverterFactory.creat())是在回调时能够使用自己定义的类型
接下来创建Api对象
使用getUserWithPath方法
使用loginWithJson方法(假设在登录时先获取用户的id,然后再获取用户的信息)
使用Form表单方式则是直接传入对应的参数即可。
1.在app中的build.gradle添加依赖
compile 'com.squareup.retrofit2:retrofit:2.2.0'
Json解析库
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'
2.创建接口:
public interface Api{}
GET请求:
@PathQuery
@GET("user") Call<User>getUserInfoWithQuery(@Query("more") String more);
@Path
@GET("user/{id}") Call<User> getUserWithPath(@Path("id")int i);
两者的区别为:
@Query是直接把参数拼接在url后面,如:url?more=more
@Path是把传进来的参数直接填进去,注意要相同的字段
POST请求:
Json格式:
先建立Bean:UserParam类
接下来创建方法:
@POST("login/json") Call<BaseResult>loginWithJson(@Body UserParam param);
Form表单格式
@FormUrlEncoded @Headers({"User-Agent :"," asendi you:pengge"}) //添加头信息:字符串数组 @POST("form") Call<BaseResult>loginWithForm(@Field("name")String name,@Field("psw")String psw);
其中Headers()是添加请求头信息,外字符串数组
3.创建Retrofit对象
Retrofit retrofit = new Retrofit.Builder() .baseUrl("要访问的url") .addConverterFactory(GsonConverterFactory.create()) .build();
其中加上addConverterFactory(GsonConverterFactory.creat())是在回调时能够使用自己定义的类型
接下来创建Api对象
Api api = retrofit.create(Api.class);
使用getUserWithPath方法
api.getUserWithPath.enqueue(new Callback<User>() { @Override public void onResponse(Call<User> call, Response<User> response) {
User user=response.body(); Log.i(TAG, "onResponse: "+user.getUser_name());} } @Override public void onFailure(Call<News> call, Throwable t) { }});
使用loginWithJson方法(假设在登录时先获取用户的id,然后再获取用户的信息)
api.loginWithJson(new UserParam("asendi", "123")).enqueue(new Callback<BaseResult>() { @Override public void onResponse(Call<BaseResult> call, Response<BaseResult> response) { if (response.isSuccessful()) { int id = response.body().getUser_id(); api.getUserInfoWithPath(id).enqueue(new Callback<User>() {//获取用户的信息 @Override public void onResponse(Call<User> call, Response<User> response) { User user = response.body(); Log.i("User", "onResponse: " + user.getUser_name() + ":" + user.getPsw()); } @Override public void onFailure(Call<User> call, Throwable t) { } }); } } @Override public void onFailure(Call<BaseResult> call, Throwable t) { } });
使用Form表单方式则是直接传入对应的参数即可。
相关文章推荐
- 简单地使用下RxJava + Retrofit
- Retrofit简单介绍和使用
- Rxjava+Retrofit 简单使用
- android 介绍Retrofit的简单使用
- Retrofit的简单使用方法
- Retrofit的简单使用
- retrofit 开源库的简单使用
- 【Android】Retrofit的使用(4)-Retrofit进行简单的GET和POST访问操作
- Android Retrofit的简单使用案例
- 【Retrofit】简单介绍和使用
- Retrofit2的使用简单介绍
- Retrofit的(get以及post)的简单使用
- Retrofit网络通信库简单封装使用
- retrofit2.0的简单使用
- Retrofit基本介绍和简单的使用方式
- Retrofit三步理解之一 ------------------ Retrofit的简单使用总结
- 学习笔记——Retrofit2.0的简单使用
- Retrofit的简单使用
- retrofit2+RxJava简单使用
- 【Android】Retrofit的使用(3)-对Retrofit进行简单的封装