//依赖
compile 'com.facebook.fresco:fresco:0.13.0' compile 'com.youth.banner:banner:1.4.9' compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.android.support:recyclerview-v7:26.+' compile 'com.squareup.retrofit2:retrofit:2.0.0' compile 'com.squareup.retrofit2:converter-gson:2.0.2'
//Personlei
package com.example.gezhonglianxi;
import java.util.Map;
/**
* author:Created by Chenxu on 2018/1/1.
*/
public class Personlei implements Person,Model.Onfinsh {
private Myinit myinit;
private final Modellei modellei;
public Personlei(Myinit myinit) {
this.myinit = myinit;
modellei = new Modellei();
}
@Override
public void canshu(String url, Map<String, String> map) {
if(myinit==null){
return;
}
modellei.canshu(url,map,this);
}
@Override
public void success(AllBean allBean) {
myinit.success(allBean);
}
@Override
public void failure(String sb) {
myinit.failure(sb);
}
}
public interface Person {
void canshu(String url, Map<String,String> map);
}
public class Modellei implements Model {
@Override
public void canshu(String url, Map<String, String> map, final Onfinsh onfinsh) {
// RetrofitUtils instance = RetrofitUtils.getInstance(map, url);
Log.e("chen", "canshu: 我是接受到的数据"+url+map );
Edokthhp.getInert().doGet(map, url, new Utiulsinteface() {
@Override
public void chenggong(AllBean allBean) {
onfinsh.success(allBean);
}
@Override
public void shibai(String shi) {
onfinsh.failure(shi);
}
});
// RetrofitUtils.getInstance().chen(map, url, new Utiulsinteface() {
// @Override
// public void chenggong(AllBean allBean) {
// onfinsh.success(allBean);
// }
//
// @Override
// public void shibai(String shi) {
// onfinsh.failure(shi);
// }
// });
}
}
//Model接口
public interface Model {
public interface Onfinsh {
void success(AllBean allBean);
void failure(String sb);
}
void canshu(String url, Map<String,String> map,Onfinsh onfinsh);
}
//Edokthhp 这个是封装类就是类名有点别扭,复制之前的忘记改名字了
import android.os.Handler;
import java.util.Map;
import okhttp3.OkHttpClient;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* author:Created by Chenxu on 2017/12/21.
*/
public class Edokthhp {
private Handler handler=new Handler();
private static Edokthhp okHttp;
private String message;
private String result;
private Edokthhp(){
}
public static Edokthhp getInert(){
if(null == okHttp){
synchronized (Edokthhp.class){
okHttp=new Edokthhp();
}
}
return okHttp;
}
public void doGet(Map<String,String> map, String uri, final Utiulsinteface okinteface){
//创建OkHttp网络请求对象
OkHttpClient build1 = new OkHttpClient.Builder()
.build();
//创建一个Retrofit的创建对象
Retrofit build = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
//通过这个方法将Okhttp放进Retrofit中,实现结合使用
.client(build1)
.baseUrl(uri)
.build();
//APIInterface是我们自定义的接口类,用来拼接地址
Servceinteface servceinteface = build.create(Servceinteface.class);
Call call = servceinteface.call(map);
call.enqueue(new Callback<AllBean>() {
@Override
public void onResponse(Call<AllBean> call, Response<AllBean> response) {
AllBean body = response.body();
okinteface.chenggong(body);
}
@Override
public void onFailure(Call<AllBean> call, Throwable t) {
okinteface.shibai(t.getMessage());
}
});
}
}
public interface Myinit {
void success(AllBean allBean);
void failure(String sb);
}
import java.util.Map;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.QueryMap;
/**
* author:Created by Chenxu on 2018/1/1.
* http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage
*/
public interface Servceinteface {
@GET("umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611")
//泛型中放的是返回的Bean类,后面的参数放的是map集合,存放拼接的参数
Call<AllBean> call(@QueryMap Map<String,String> map);
}
//Utiulsinteface
public interface Utiulsinteface {
void chenggong(AllBean allBean);
void shibai(String shi);
}
//AllBean
//这个是泛型类直接用Gsonformat生成一下就OK了
//Main
public class MainActivity extends AppCompatActivity implements Myinit {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Personlei personlei = new Personlei(this);
Map<String,String> map = new HashMap<>();
map.put("uri","homepage");
personlei.canshu("http://result.eolinker.com/",map);
}
@Override
public void success(AllBean allBean) {
AllBean.DataBean data = allBean.getData();
String s = data.getAd1().get(0).getImage();
Log.e("chen", "success: "+data.getAd1().get(0).getTitle()+allBean.getMsg() );
}
@Override
public void failure(String sb) {
Log.e("chen", "failure: "+sb );
}
}