public class Okhttp {
//单例
private final static Okhttp OKHTTP = new Okhttp();
public Okhttp() {
}
public static Okhttp getdanli() {
return OKHTTP;
}
//拦截器
private Interceptor getAppInterceptor(){
Interceptor interceptor=new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request=chain.request();
Log.e("+++++++++++++++",“拦截前”);
Response response=chain.proceed(request);
Log.e("+++++++++++++++",“拦截后”);
return response;
}
};
return interceptor;
}
//耗时操作
private HttpUtils(){
File file=new File(Environment.getExternalStorageDirectory(),“cachell”);
client=new OkHttpClient().newBuilder()
.readTimeout(3000,TimeUnit.SECONDS)
.connectTimeout(3000,TimeUnit.SECONDS)
.addInterceptor(getAppInterceptor())
.cache(new Cache(file,10*1024))
.build();
// get请求接口数据
public void get(String url, final getokhttp getokhttp){
OkHttpClient okHttpClient = new OkHttpClient();
final Request request = new Request.Builder().url(url).build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
getokhttp.getcheng(string);
}
});
}
//post请求登录注册接口
public void post(String url,String name,String pwd, final getokhttp getokhttp){
OkHttpClient okHttpClient = new OkHttpClient();
RequestBody requestBody =new FormBody.Builder().add("phone",name).add("pwd",pwd).build();
Request request = new Request.Builder().url(url).post(requestBody).build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Log.i("AA","okhttp"+string);
getokhttp.getcheng(string);
}
});
}
//内部接口 成功回调
public interface getokhttp{
void getcheng(String s);
}
}