//新建一个接口 用来设置是GET 请求还是 POST
public interface MyApp {
@POST
Observable login(@Url String data, @QueryMap HashMap<String,String>hashMap);
}
//地址
public class Canstan {
public static final String QianZhui=“http://172.17.8.100/small/”;
public static final String Login=“user/v1/login”;
public static final String Regist=“user/v1/register”;
}
//存放数据类型
public interface CallBackData {
void sucess(String data);
}
//实现
public class OkHttpUtlis {
private static OkHttpUtlis okHttpUtlis;
private final OkHttpClient client;
private final MyApp myApp;
//单例
public static OkHttpUtlis getokhttputlis(){
if (okHttpUtlis==null){
okHttpUtlis = new OkHttpUtlis();
}
return okHttpUtlis;
}
//ok
public OkHttpUtlis(){
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
client = new OkHttpClient.Builder()
.addInterceptor(httpLoggingInterceptor)
.build();
Retrofit retrofit = new Retrofit.Builder().baseUrl(Canstan.QianZhui).addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
myApp = retrofit.create(MyApp.class);
}
//ok方法
public void login(String data, final CallBackData callBackData, HashMap<String,String>hashMap){
myApp.login(data, hashMap).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ResponseBody>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(ResponseBody responseBody) {
try {
callBackData.sucess(responseBody.string());
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}