版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Retrofit接口的封装
GET
// http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1
//@Get 请求后面的声明 拼接到我们的baseurl上 之后就会获取一个完整路径
@GET("ios/cf/{path}")
//必须传的用@Path(),不必要的用 @Query
Call<Bean> getData(@Path("path")String path , @Query("stage_id")String state_id , @Query("limit")String limit , @Query("page")String page);
@GET("ios/cf/{path}")
Call<Bean> getMapData(@Path("path")String path , @QueryMap Map<String,String> map);
@GET
Call<Bean> getUrlData(@Url String url);
Post
@POST("ios/cf/{path}")
@FormUrlEncoded
//必须传的用@Path(),不必要的用 @Query
Call<Bean> getData(@Path("path")String path , @Query("stage_id")String state_id , @Query("limit")String limit , @Query("page")String page);
@POST("ios/cf/{path}")
Call<Bean> getMapData(@Path("path")String path , @Body BodyBean bodyBean);
@POST
Call<Bean> getUrlData(@Url String url);
GET实现
public class GetActivity extends AppCompatActivity {
private String baseUrl = "http://www.qubaobei.com/";
private String Url = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_get);
initRetorfit();
initMapData();
initURL();
}
private void initURL() {
new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(MyGet.class)
.getUrlData(Url)
.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
Log.e("#######data_Url",response.body().toString());
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
}
});
}
private void initMapData() {
Map<String,String> map = new HashMap<>();
map.put("stage_id","1");
map.put("limit","20");
map.put("page","1");
new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(MyGet.class)
.getMapData("dish_list.php",map)
.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
Log.e("#######data_Map",response.body().toString());
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
}
});
}
private void initRetorfit() {
//获取retrofit的构建者
Retrofit.Builder builder = new Retrofit.Builder();
//传入baseurl
builder.baseUrl(baseUrl);
//给我们通过网络请求的json串 转化成我们的bean类
builder.addConverterFactory(GsonConverterFactory.create());
//获取我们retrofit的实例
Retrofit build = builder.build();
MyGet myGet = build.create(MyGet.class);
Call<Bean> call = myGet.getData("dish_list.php", "1", "20", "1");
call.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
//请求成功后获取数据
Log.e("#######data_Nomal",response.body().toString());
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
//请求失败
}
});
}
Post实现
public class PostActivity extends AppCompatActivity {
private String baseUrl = "http://www.qubaobei.com/";
private String Url = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post2);
initRetorfit();
// initMapData();
//
// initURL();
}
private void initURL() {
new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(MyPost.class)
.getUrlData(Url)
.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
Log.e("#######data_Url",response.body().toString());
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
}
});
}
private void initMapData() {
BodyBean bodyBean = new BodyBean();
bodyBean.setStage_id("1");
bodyBean.setPage("1");
bodyBean.setLimit("20");
new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(MyPost.class)
.getMapData("dish_list.php",bodyBean)
.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
Log.e("#######data_Map",response.body().toString());
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
}
});
}
private void initRetorfit() {
//获取retrofit的构建者
Retrofit.Builder builder = new Retrofit.Builder();
//传入baseurl
builder.baseUrl(baseUrl);
//给我们通过网络请求的json串 转化成我们的bean类
builder.addConverterFactory(GsonConverterFactory.create());
//获取我们retrofit的实例
Retrofit build = builder.build();
MyPost myPost = build.create(MyPost.class);
Call<Bean> call = myPost.getData("dish_list.php", "1", "20", "1");
call.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
//请求成功后获取数据
Log.e("#######data_Nomal",response.body().toString());
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
//请求失败
}
});
}