package com.bw.zhuangao2_3;
import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(Build.VERSION.SDK_INT>Build.VERSION_CODES.M){
requestPermissions(new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
},101);
}
}
public void get(View view) {
//创建客户端
OkHttpClient okHttpClient=new OkHttpClient().newBuilder().build();
//设置请求
Request request=new Request
.Builder()
.url("http://43.143.146.165:7777/foods/getFoods?currentPage=1&pageSize=12")
.get()
.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 body=response.body().string();
Log.i("---aa", "onResponse: "+body);
}
});
}
public void post(View view) {
//创建客户端
OkHttpClient okHttpClient=new OkHttpClient().newBuilder().build();
//定义表单
FormBody formBody=new FormBody.Builder()
.add("pageSize","10")
.add("currentPage","1")
.build();
//创建请求对象
Request request=new Request.Builder()
.url("http://43.143.146.165:7777/foods/postFoods")
.post(formBody)
.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 body=response.body().string();
Log.i("----aas", "onResponse: "+body);
}
});
}
}
package com.bw.zhuangao2_3.util;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import com.bw.zhuangao2_3.callback.MyokHttp;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;
public class OkHtttpUtil {
OkHttpClient httpClient;
private OkHtttpUtil(){
httpClient=new OkHttpClient().newBuilder()
.readTimeout(5,TimeUnit.MINUTES)
.writeTimeout(5,TimeUnit.MINUTES)
.connectTimeout(5,TimeUnit.MINUTES)
//设置token设置自定义拦截器
//日志拦截器
.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request=chain.request().newBuilder().addHeader("app-version","1.0").build();
Response response=chain.proceed(request);
return response;
}
})
.build();
}
private static volatile OkHtttpUtil okHtttpUtil=null;
public static OkHtttpUtil getOkHtttpUtil(){
if(okHtttpUtil==null){
synchronized (OkHtttpUtil.class){
if(okHtttpUtil==null){
okHtttpUtil=new OkHtttpUtil();
}
}
}
return okHtttpUtil;
}
public void get(String urlpath,MyokHttp myokHttp) {
Handler handler=new Handler();
//创建客户端
OkHttpClient okHttpClient=new OkHttpClient().newBuilder().build();
//设置请求
Request request=new Request.Builder()
.url(urlpath)
.get()
.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 body=response.body().string();
Log.i("---aa", "onResponse: "+body);
handler.post(new Runnable() {
@Override
public void run() {
myokHttp.ok(body);
}
});
}
});
}
public void post(String urlpath,FormBody formBody,MyokHttp myokHttp) {
//创建客户端
OkHttpClient okHttpClient=new OkHttpClient().newBuilder().build();
//定义表单
//创建请求对象
Request request=new Request.Builder()
.url(urlpath)
.post(formBody)
.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 body=response.body().string();
Log.i("----aas", "onResponse: "+body);
myokHttp.ok(body);
}
});
}
}
package com.bw.zhuangao2_3.modeil;
import com.bw.zhuangao2_3.callback.MyokHttp;
import com.bw.zhuangao2_3.util.OkHtttpUtil;
import okhttp3.FormBody;
public class MyModeld implements MyModel{
@Override
public void doget(String urlpath, MyokHttp myokHttp) {
OkHtttpUtil.getOkHtttpUtil().get(urlpath,myokHttp);
}
@Override
public void dopost(String urlpath, FormBody formBody, MyokHttp myokHttp) {
OkHtttpUtil.getOkHtttpUtil().post(urlpath,formBody,myokHttp);
}
}
package com.bw.zhuangao2_3.modeil;
import com.bw.zhuangao2_3.callback.MyokHttp;
import okhttp3.FormBody;
public interface MyModel {
void doget(String urlpath, MyokHttp myokHttp);
void dopost(String urlpath, FormBody formBody, MyokHttp myokHttp);
}
package com.bw.zhuangao2_3.contronller;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bw.zhuangao2_3.R;
import com.bw.zhuangao2_3.callback.MyokHttp;
import com.bw.zhuangao2_3.entiy.BnaEntiy;
import com.bw.zhuangao2_3.modeil.MyModeld;
import com.bw.zhuangao2_3.util.OkHtttpUtil;
import com.google.gson.Gson;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;
import com.youth.banner.loader.ImageLoaderInterface;
import java.util.ArrayList;
import java.util.List;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
public class Homectivity extends AppCompatActivity {
private Banner ban;
private MyModeld myModeld;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
ban = (Banner) findViewById(R.id.ban);
List<String>listban=new ArrayList<>();
myModeld=new MyModeld();
myModeld.doget("http://43.143.146.165:7777/banner/json", new MyokHttp() {
@Override
public void ok(String json) {
Gson gson = new Gson();
BnaEntiy bnaEntiy = gson.fromJson(json, BnaEntiy.class);
List<BnaEntiy.DataDTO> data = bnaEntiy.getData();
for(BnaEntiy.DataDTO dataDTO:data){
listban.add(dataDTO.getImagePath());
}
ban.setImages(listban);
ban.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
});
ban.start();
}
});
}
public void getse(View view) {
OkHtttpUtil.getOkHtttpUtil().get("http://43.143.146.165:7777/foods/getFoods?currentPage=1&pageSize=12", new MyokHttp() {
@Override
public void ok(String json) {
Log.i("---asaaw", "ok: "+json);
}
});
}
public void posetssaw(View view) {
FormBody formBody=new FormBody.Builder()
.add("pageSize","10")
.add("currentPage","1")
.build();
OkHtttpUtil.getOkHtttpUtil().post("http://43.143.146.165:7777/foods/postFoods", formBody, new MyokHttp() {
@Override
public void ok(String json) {
Log.i("---postl", "ok: "+json);
}
});
}
}
package com.bw.zhuangao2_3.callback;
public interface MyokHttp {
void ok(String json);
}