Retrofit的使用
在github搜索retrofit点进去,里面有官网的链接,链接有个Gradle的依赖。嗯,在工程里导入依赖…如果有看Okhttp的依赖那部分,这里应该懂得怎么搞。
get请求,不带参:
private static final String PATH = "http://192.168.137.1:8080";
public void getRequest(View view){
Retrofit retrofit=new Retrofit.Builder()
.baseUrl(PATH)
.build();
API api=retrofit.create(API.class);
Call<ResponseBody> task = api.getJson();
task.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
Log.e(TAG, "onResponse");
if(response.code()== HttpURLConnection.HTTP_OK){
try {
Log.e(TAG, response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.e(TAG, "onFailure");
}
});
}
新建一个接口类:
GET里面参数是服务器的对应工程
public interface API {
@GET("/cookie_war_exploded/ShopInfoServlet")
Call<ResponseBody> getJson();
}
当熟悉过后,可以将一些代码写进工具类里面,比如我这里写一点点,配合下面的带参get方法
public class RetrofitManager {
private static final String PATH = "http://192.168.137.1:8080";
private static Retrofit retrofit=new Retrofit.Builder()
.baseUrl(PATH)
//这里很重点,这一行是转换器,需要去依赖com.squareup.retrofit2:converter-gson,这个再retrofit的官网可以看到。后面还需要添加个版本号。
//如果没有转换器,就是解析不了json数据,就会报错。
.addConverterFactory(GsonConverterFactory.create())
.build();
public static Retrofit getRetrofit(){
return retrofit;
}
}
然后接下来写一个get带参的,然后数据库返回json数据
//get方式带参数
public void getRequestTwo(View view){
Retrofit retrofit= RetrofitManager.getRetrofit();
API api=retrofit.create(API.class);
//注意,这里的泛型是指UesrBean,如果要接收任意数据则用ResponseBody。
Call<UserBean> task = api.getWithParams("Tom",12);
task.enqueue(new Callback<UserBean>() {
@Override
public void onResponse(Call<UserBean> call, Response<UserBean> response) {
Log.e(TAG, "onResponse"+response.code());
if((response.code())== HttpURLConnection.HTTP_OK){
try {
Log.e(TAG, ""+response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call<UserBean> call, Throwable t) {
Log.e(TAG, "onFailure");
}
});
}
注解:
public interface API {
<