版权声明:本文为宠歆小王子的原创文章,未经宠歆小王子允许不得转载。 https://blog.csdn.net/qq_41698379/article/details/82831321
<uses-permission android:name="android.permission.INTERNET"/>
implementation 'com.android.support:recyclerview-v7:27.+'
implementation 'com.github.bumptech.glide:glide:4.8.0'
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.google.code.gson:gson:2.2.4'
utils OKHttpUtils
public class OKHttpUtils {
private static OkHttpClient client = null;
public OKHttpUtils() {
}
private static OkHttpClient getInstance() {
if (client == null) {
synchronized (OKHttpUtils.class) {
if (client == null)
client = new OkHttpClient();
}
}
return client;
}
public static void dogetex(String url) {
Request request = new Request.Builder().url(url).build();
Call call = getInstance().newCall(request);
try {
call.execute();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void doget(String url, Callback callback) {
Request request = new Request.Builder().url(url).build();
Call call = getInstance().newCall(request);
call.enqueue(callback);
}
public static void dopostjson(String url, String json, Callback callback) {
RequestBody body = RequestBody.create(MediaType.parse("application/json;charset = utf-8"), json);
Request request = new Request.Builder().url(url).post(body).build();
Call call = getInstance().newCall(request);
call.enqueue(callback);
}
class MyInteercrpter implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
String method = request.method();
if (method.equals("GET")) {
String url = request.url().toString();
boolean contains = url.contains("?");
if (contains) {
url = url + "&source = android";
} else {
url = url + "?source = android";
}
Request request1 = request.newBuilder().url(url).build();
Response response = chain.proceed(request1);
return response;
} else if (method.equals("POST")) {
RequestBody body = request.body();
if (body instanceof FormBody) {
FormBody.Builder newBuilder = new FormBody.Builder();
for (int i = 0; i < ((FormBody) body).size(); i++) {
String key = ((FormBody) body).name(i);
String value = ((FormBody) body).value(i);
newBuilder.add(key, value);
}
newBuilder.add("source", "android");
FormBody newBody = newBuilder.build();
Request request1 = request.newBuilder().post(newBody).build();
Response response = chain.proceed(request1);
return response;
}
}
return null;
}
}
}
utils OKHttpUtils
View MainView
public interface MainView {
void onSuccess(ShopBean shopBean);
void onError(int code);
}
View MainView